time="2025-06-18T09:52:30Z" level=warning msg="/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/integration-test/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion" Container integration-test-authorization-1 Creating Container integration-test-forwarding-1 Creating Container integration-test-federation-1 Creating Container integration-test-device-1 Creating Container integration-test-authentication-1 Creating Container integration-test-gateway-1 Creating Container integration-test-experiment-1 Creating Container integration-test-forwarding-1 Created Container integration-test-federation-1 Created Container integration-test-experiment-1 Created Container integration-test-gateway-1 Created Container integration-test-authentication-1 Created Container integration-test-device-1 Created Container integration-test-authorization-1 Created Attaching to authentication-1, authorization-1, device-1, experiment-1, federation-1, forwarding-1, gateway-1 gateway-1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration gateway-1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ gateway-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh gateway-1 | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf gateway-1 | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf gateway-1 | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh gateway-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-create_config.sh gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/authorization_service.conf to /etc/nginx/authorization_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/lti_service.conf to /etc/nginx/lti_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/nginx.conf to /etc/nginx/nginx.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/device_service.conf to /etc/nginx/device_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/experiment_service.conf to /etc/nginx/experiment_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/auth_service.conf to /etc/nginx/auth_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/federation_service.conf to /etc/nginx/federation_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/api_json_errors.conf to /etc/nginx/api_json_errors.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/forwarding_service.conf to /etc/nginx/forwarding_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/api_backends.conf to /etc/nginx/api_backends.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/api_gateway.conf to /etc/nginx/api_gateway.conf gateway-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh gateway-1 | /docker-entrypoint.sh: Configuration complete; ready for start up forwarding-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} forwarding-1 | {"level":"info","message":"Forwarding Service started successfully"} federation-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} authorization-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} authentication-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} experiment-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} device-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} federation-1 | {"level":"info","message":"Federation Service started successfully"} authorization-1 | {"addrs":["localhost:3011"],"diagnostic-addrs":[],"level":"info","msg":"Initializing server.","subsystem":"opa","time":"2025-06-18T09:53:24Z"} experiment-1 | {"level":"info","message":"Experiment Service started successfully"} device-1 | {"level":"info","message":"Device Service started successfully"} authentication-1 | {"level":"info","message":"Authentication Service started successfully"} authorization-1 | {"client_addr":"127.0.0.1:51210","level":"info","msg":"Received request.","req_id":1,"req_method":"GET","req_path":"/","subsystem":"opa","time":"2025-06-18T09:53:25Z"} authorization-1 | {"client_addr":"127.0.0.1:51210","level":"info","msg":"Sent response.","req_id":1,"req_method":"GET","req_path":"/","resp_bytes":1424,"resp_duration":0.252548,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:25Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"๐Ÿงช experimental features enabled: []","subsystem":"openfga","timestamp":1750240405.1409132} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"using 'memory' storage engine","subsystem":"openfga","timestamp":1750240405.140983} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"warn","message":"authentication is disabled","subsystem":"openfga","timestamp":1750240405.1410122} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"warn","message":"grpc TLS is disabled, serving connections using insecure plaintext","subsystem":"openfga","timestamp":1750240405.1410387} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"๐Ÿ“ˆ starting metrics server on '0.0.0.0:2112'","subsystem":"openfga","timestamp":1750240405.1410635} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","date":"2023-06-30T20:11:20Z","go-version":"go1.20.5","level":"info","message":"๐Ÿš€ starting openfga service...","subsystem":"openfga","timestamp":1750240405.1411157,"version":"v1.2.0"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"grpc server listening on 'localhost:3012'...","subsystem":"openfga","timestamp":1750240405.1417005} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"HTTP server listening on 'localhost:3013'...","subsystem":"openfga","timestamp":1750240405.1428893} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"CreateStore","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"name":"crosslab"},"raw_response":{"created_at":"2025-06-18T09:53:25.160009820Z","id":"01JY17A9N7QBER116NPEBA70ZZ","name":"crosslab","updated_at":"2025-06-18T09:53:25.160009820Z"},"request_id":"1f82afeb-1e30-49d2-9052-5d3e45cc5c28","subsystem":"openfga","timestamp":1750240405.1600919} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"WriteAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"schema_version":"1.1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]},"raw_response":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z"},"request_id":"913b0604-e409-4d3b-b0ad-883ad684d4d8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240405.2394729} authorization-1 | {"client_addr":"127.0.0.1:51210","level":"info","msg":"Received request.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","subsystem":"opa","time":"2025-06-18T09:53:25Z"} authorization-1 | {"client_addr":"127.0.0.1:51210","level":"info","msg":"Sent response.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","resp_bytes":0,"resp_duration":0.181735,"resp_status":204,"subsystem":"opa","time":"2025-06-18T09:53:25Z"} authorization-1 | {"level":"info","message":"Authorization Service started successfully"} authorization-1 | {"current_version":"0.54.0","download_opa":"https://openpolicyagent.org/downloads/v1.5.1/opa_linux_amd64","latest_version":"1.5.1","level":"info","msg":"OPA is out of date.","release_notes":"https://github.com/open-policy-agent/opa/releases/tag/v1.5.1","subsystem":"opa","time":"2025-06-18T09:53:25Z"} gateway-1 | {"time_local":"18/Jun/2025:09:53:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"HEAD /auth/status HTTP/1.1","status": "200","body_bytes_sent":"0","request_time":"0.035","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"6f62817f6b55c5520b148ce2197118fc"} authentication-1 | {"level":"info","message":"HEAD /auth/status 200 32ms","method":"HEAD","requestID":"6f62817f6b55c5520b148ce2197118fc","responseTime":32,"status":200,"url":"/auth/status"} gateway-1 | {"time_local":"18/Jun/2025:09:53:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"HEAD /device/status HTTP/1.1","status": "200","body_bytes_sent":"0","request_time":"0.012","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"a886942ecae56e04481b4cf3e0abb09e"} device-1 | {"level":"info","message":"HEAD /device/status 200 7ms","method":"HEAD","requestID":"1c5a1b10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/device/status"} gateway-1 | {"time_local":"18/Jun/2025:09:53:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"HEAD /authorization/status HTTP/1.1","status": "200","body_bytes_sent":"0","request_time":"0.028","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"78d653662c3d353fe79f0db517fa4f84"} authorization-1 | {"level":"info","message":"HEAD /authorization/status 200 5ms","method":"HEAD","requestID":"78d653662c3d353fe79f0db517fa4f84","responseTime":5,"status":200,"url":"/authorization/status"} gateway-1 | {"time_local":"18/Jun/2025:09:53:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"HEAD /federation/status HTTP/1.1","status": "200","body_bytes_sent":"0","request_time":"0.010","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"856bb0c39ed2c6f261f1a7d746b07f2f"} federation-1 | {"level":"info","message":"HEAD /federation/status 200 6ms","method":"HEAD","requestID":"1c61e340-4c2a-11f0-bd25-3b43155c5242","responseTime":6,"status":200,"url":"/federation/status"} gateway-1 | {"time_local":"18/Jun/2025:09:53:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"HEAD /experiment/status HTTP/1.1","status": "200","body_bytes_sent":"0","request_time":"0.011","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"48ece1ea3c6688b031aeac471e06eb58"} experiment-1 | {"level":"info","message":"HEAD /experiment/status 200 7ms","method":"HEAD","requestID":"1c678890-4c2a-11f0-9be7-b19699330806","responseTime":7,"status":200,"url":"/experiment/status"} gateway-1 | {"time_local":"18/Jun/2025:09:53:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"HEAD /forwarding/status HTTP/1.1","status": "200","body_bytes_sent":"0","request_time":"0.033","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"06d26ff12baedfe12ab004323581e391"} forwarding-1 | {"level":"info","message":"HEAD /forwarding/status 200 28ms","method":"HEAD","requestID":"1c6a20a0-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":28,"status":200,"url":"/forwarding/status"} gateway-1 | {"time_local":"18/Jun/2025:09:53:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /login HTTP/1.1","status": "201","body_bytes_sent":"88","request_time":"0.178","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fd21f83b225cafd9b32c95cf4d0f8dfe"} authentication-1 | {"level":"info","message":"POST /login 201 145ms","method":"POST","requestID":"fd21f83b225cafd9b32c95cf4d0f8dfe","responseTime":145,"status":201,"url":"/login"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQyNn0.m-pNfsbDRCDQSMYDYS6Xj9e02Rkkej33bEnIGlh-kaM","level":"info","message":"auth send jwt","requestID":"b6a6f050e501a5ea122d22bf26a5e9e6"} authentication-1 | {"level":"info","message":"GET /auth 200 87ms","method":"GET","requestID":"b6a6f050e501a5ea122d22bf26a5e9e6","responseTime":87,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"b6a6f050e501a5ea122d22bf26a5e9e6"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":2.061269,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b6a6f050e501a5ea122d22bf26a5e9e6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240426,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQyNn0.m-pNfsbDRCDQSMYDYS6Xj9e02Rkkej33bEnIGlh-kaM"} authorization-1 | {"level":"info","message":"POST /authorize 200 19ms","method":"POST","requestID":"b6a6f050e501a5ea122d22bf26a5e9e6","responseTime":19,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e7356ad3-aa22-473f-8710-09fa5e0579f1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240427.082239} authorization-1 | {"level":"info","message":"POST /relations/query 200 13ms","method":"POST","requestID":"b6a6f050e501a5ea122d22bf26a5e9e6","responseTime":13,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"db9d48ed-474a-4922-921c-b731fb02629e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240427.106982} authorization-1 | {"level":"info","message":"POST /relations/update 200 22ms","method":"POST","requestID":"b6a6f050e501a5ea122d22bf26a5e9e6","responseTime":22,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"cce05967-a9cc-4266-a87a-3a585224c662","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240427.1346793} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e98e940b-b3e4-4b29-a80f-8c21dc4a31ba","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240427.136155} authorization-1 | {"level":"info","message":"POST /relations/update 200 33ms","method":"POST","requestID":"b6a6f050e501a5ea122d22bf26a5e9e6","responseTime":33,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:47.134649661Z"}]},"request_id":"2bcd3060-1a55-4213-82a5-aa7853de666b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240427.1706874} authorization-1 | {"level":"info","message":"POST /relations/query 200 29ms","method":"POST","requestID":"b6a6f050e501a5ea122d22bf26a5e9e6","responseTime":29,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"b6a6f050e501a5ea122d22bf26a5e9e6"} gateway-1 | {"time_local":"18/Jun/2025:09:53:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.291","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b6a6f050e501a5ea122d22bf26a5e9e6"} device-1 | {"level":"info","message":"POST /devices? 201 193ms","method":"POST","requestID":"b6a6f050e501a5ea122d22bf26a5e9e6","responseTime":193,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQyN30.-WM2I40OUmFVdaU3hVjK3q7Nc2EgUwGC2a6YQwfvELw","level":"info","message":"auth send jwt","requestID":"c574ee6e23212257b7f4c537a41b1e71"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c574ee6e23212257b7f4c537a41b1e71","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"c574ee6e23212257b7f4c537a41b1e71"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.690222,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c574ee6e23212257b7f4c537a41b1e71","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240427,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQyN30.-WM2I40OUmFVdaU3hVjK3q7Nc2EgUwGC2a6YQwfvELw"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"c574ee6e23212257b7f4c537a41b1e71","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d63215d9-06da-49ee-8c89-e4b10f830873","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240427.2754521} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c574ee6e23212257b7f4c537a41b1e71","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"559974a1-782b-4628-a2c7-07da1ccf1faa","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240427.2849808} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"c574ee6e23212257b7f4c537a41b1e71","responseTime":6,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"c44df504-f33a-4de8-b147-9f2d4b049dc5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240427.32047} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2fac3f1b-6189-4d14-9704-35e4f1dd66ba","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240427.320619} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"c574ee6e23212257b7f4c537a41b1e71","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:47.320456116Z"}]},"request_id":"7aada597-4838-4d2c-bd06-7f8439a8d75f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240427.3270473} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c574ee6e23212257b7f4c537a41b1e71","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"c574ee6e23212257b7f4c537a41b1e71"} gateway-1 | {"time_local":"18/Jun/2025:09:53:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.112","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c574ee6e23212257b7f4c537a41b1e71"} device-1 | {"level":"info","message":"POST /devices? 201 106ms","method":"POST","requestID":"c574ee6e23212257b7f4c537a41b1e71","responseTime":106,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0702fe4ae75de2b7e9d744ed3c3447ba","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0702fe4ae75de2b7e9d744ed3c3447ba","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"1a73adbb0139dcec82fafa1d92a538ba","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1a73adbb0139dcec82fafa1d92a538ba","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:53:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/a02911c5-acad-4e89-8c66-ba1616928f4f/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.008","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0702fe4ae75de2b7e9d744ed3c3447ba"} device-1 | {"level":"info","message":"OPTIONS /devices/a02911c5-acad-4e89-8c66-ba1616928f4f/websocket 200 3ms","method":"OPTIONS","requestID":"0702fe4ae75de2b7e9d744ed3c3447ba","responseTime":3,"status":200,"url":"/devices/a02911c5-acad-4e89-8c66-ba1616928f4f/websocket"} device-1 | {"level":"info","message":"OPTIONS /devices/2612466c-c717-46fe-8e89-fc44a22eeddb/websocket 200 1ms","method":"OPTIONS","requestID":"1a73adbb0139dcec82fafa1d92a538ba","responseTime":1,"status":200,"url":"/devices/2612466c-c717-46fe-8e89-fc44a22eeddb/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:53:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/2612466c-c717-46fe-8e89-fc44a22eeddb/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.016","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1a73adbb0139dcec82fafa1d92a538ba"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA","level":"info","message":"auth send jwt","requestID":"18d26ca40b43140e24bc20a3f010734c"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"18d26ca40b43140e24bc20a3f010734c","responseTime":6,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA","level":"info","message":"auth send jwt","requestID":"1d976ac317311e19011e91d28d58e200"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"1d976ac317311e19011e91d28d58e200","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"18d26ca40b43140e24bc20a3f010734c"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:50Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.646757,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:50Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"18d26ca40b43140e24bc20a3f010734c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240430,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"18d26ca40b43140e24bc20a3f010734c","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"1d976ac317311e19011e91d28d58e200"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:50Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.642014,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:50Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"1d976ac317311e19011e91d28d58e200","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240430,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"1d976ac317311e19011e91d28d58e200","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"18d26ca40b43140e24bc20a3f010734c"} gateway-1 | {"time_local":"18/Jun/2025:09:53:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/a02911c5-acad-4e89-8c66-ba1616928f4f/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.068","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"18d26ca40b43140e24bc20a3f010734c"} device-1 | {"level":"info","message":"POST /devices/a02911c5-acad-4e89-8c66-ba1616928f4f/websocket 200 60ms","method":"POST","requestID":"18d26ca40b43140e24bc20a3f010734c","responseTime":60,"status":200,"url":"/devices/a02911c5-acad-4e89-8c66-ba1616928f4f/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"1d976ac317311e19011e91d28d58e200"} gateway-1 | {"time_local":"18/Jun/2025:09:53:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/2612466c-c717-46fe-8e89-fc44a22eeddb/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.078","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1d976ac317311e19011e91d28d58e200"} device-1 | {"level":"info","message":"POST /devices/2612466c-c717-46fe-8e89-fc44a22eeddb/websocket 200 69ms","method":"POST","requestID":"1d976ac317311e19011e91d28d58e200","responseTime":69,"status":200,"url":"/devices/2612466c-c717-46fe-8e89-fc44a22eeddb/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"468f1d095ae1c49c294466baec7d608a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"468f1d095ae1c49c294466baec7d608a","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:53:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/a02911c5-acad-4e89-8c66-ba1616928f4f? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.005","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"468f1d095ae1c49c294466baec7d608a"} device-1 | {"level":"info","message":"OPTIONS /devices/a02911c5-acad-4e89-8c66-ba1616928f4f? 200 1ms","method":"OPTIONS","requestID":"468f1d095ae1c49c294466baec7d608a","responseTime":1,"status":200,"url":"/devices/a02911c5-acad-4e89-8c66-ba1616928f4f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA","level":"info","message":"auth send jwt","requestID":"71a51e4003a03f8d763298aed084a105"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"71a51e4003a03f8d763298aed084a105","responseTime":4,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0065abf9dcf558534ab16deb8ac4da90","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0065abf9dcf558534ab16deb8ac4da90","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"71a51e4003a03f8d763298aed084a105"} gateway-1 | {"time_local":"18/Jun/2025:09:53:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/2612466c-c717-46fe-8e89-fc44a22eeddb? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.033","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0065abf9dcf558534ab16deb8ac4da90"} device-1 | {"level":"info","message":"OPTIONS /devices/2612466c-c717-46fe-8e89-fc44a22eeddb? 200 1ms","method":"OPTIONS","requestID":"0065abf9dcf558534ab16deb8ac4da90","responseTime":1,"status":200,"url":"/devices/2612466c-c717-46fe-8e89-fc44a22eeddb?"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:50Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.971646,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:50Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"71a51e4003a03f8d763298aed084a105","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240430,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"71a51e4003a03f8d763298aed084a105","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA","level":"info","message":"auth send jwt","requestID":"ba24b85e2c60520ed891099f83ce46b3"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ba24b85e2c60520ed891099f83ce46b3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"ba24b85e2c60520ed891099f83ce46b3"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:50Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.702055,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:50Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ba24b85e2c60520ed891099f83ce46b3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240430,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"ba24b85e2c60520ed891099f83ce46b3","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:47.320456116Z"}]},"request_id":"6de492e6-2930-4f3c-bac3-c652f3d78a91","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240430.64447} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"71a51e4003a03f8d763298aed084a105","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"506656f8-d4bc-4c09-aad3-dc8182e66d4f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240430.6767616} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"71a51e4003a03f8d763298aed084a105","responseTime":5,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:47.134649661Z"}]},"request_id":"d0f081c7-12f0-4c6f-9e4c-354844eabbea","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240430.6785574} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"ba24b85e2c60520ed891099f83ce46b3","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e2fd2217-10d3-4edb-ac94-56a0b4e88190","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240430.6848323} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"ba24b85e2c60520ed891099f83ce46b3","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:47.320456116Z"}]},"request_id":"ca26ba2b-0ef8-449c-b6f5-e74711beca86","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240430.72549} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"71a51e4003a03f8d763298aed084a105","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"71a51e4003a03f8d763298aed084a105"} gateway-1 | {"time_local":"18/Jun/2025:09:53:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/a02911c5-acad-4e89-8c66-ba1616928f4f? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.137","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"71a51e4003a03f8d763298aed084a105"} device-1 | {"level":"info","message":"PATCH /devices/a02911c5-acad-4e89-8c66-ba1616928f4f? 200 132ms","method":"PATCH","requestID":"71a51e4003a03f8d763298aed084a105","responseTime":132,"status":200,"url":"/devices/a02911c5-acad-4e89-8c66-ba1616928f4f?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:47.134649661Z"}]},"request_id":"750b4afb-a59b-4e91-bebe-96cca6d6a048","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240430.7372} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"ba24b85e2c60520ed891099f83ce46b3","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"ba24b85e2c60520ed891099f83ce46b3"} gateway-1 | {"time_local":"18/Jun/2025:09:53:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/2612466c-c717-46fe-8e89-fc44a22eeddb? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.106","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ba24b85e2c60520ed891099f83ce46b3"} device-1 | {"level":"info","message":"PATCH /devices/2612466c-c717-46fe-8e89-fc44a22eeddb? 200 101ms","method":"PATCH","requestID":"ba24b85e2c60520ed891099f83ce46b3","responseTime":101,"status":200,"url":"/devices/2612466c-c717-46fe-8e89-fc44a22eeddb?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA","level":"info","message":"auth send jwt","requestID":"69ca80734c01ae2e98a1a9fdcc8c55b2"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"69ca80734c01ae2e98a1a9fdcc8c55b2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"69ca80734c01ae2e98a1a9fdcc8c55b2"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:50Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.721989,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"69ca80734c01ae2e98a1a9fdcc8c55b2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240430,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"69ca80734c01ae2e98a1a9fdcc8c55b2","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:47.134649661Z"}]},"request_id":"dd1e5bb4-375a-4ddf-8ac7-3a7def576282","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240430.7847729} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"69ca80734c01ae2e98a1a9fdcc8c55b2","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"69ca80734c01ae2e98a1a9fdcc8c55b2"} gateway-1 | {"time_local":"18/Jun/2025:09:53:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2612466c-c717-46fe-8e89-fc44a22eeddb? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"69ca80734c01ae2e98a1a9fdcc8c55b2"} device-1 | {"level":"info","message":"GET /devices/2612466c-c717-46fe-8e89-fc44a22eeddb? 200 19ms","method":"GET","requestID":"69ca80734c01ae2e98a1a9fdcc8c55b2","responseTime":19,"status":200,"url":"/devices/2612466c-c717-46fe-8e89-fc44a22eeddb?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA","level":"info","message":"auth send jwt","requestID":"2b9507d6a478d79968d94fb936fa1332"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2b9507d6a478d79968d94fb936fa1332","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2b9507d6a478d79968d94fb936fa1332"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:50Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.028827,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2b9507d6a478d79968d94fb936fa1332","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240430,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"2b9507d6a478d79968d94fb936fa1332","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:47.320456116Z"}]},"request_id":"8f28640b-2c69-4fb1-9ca6-5d9613a54a84","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240430.8112721} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2b9507d6a478d79968d94fb936fa1332","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2b9507d6a478d79968d94fb936fa1332"} gateway-1 | {"time_local":"18/Jun/2025:09:53:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a02911c5-acad-4e89-8c66-ba1616928f4f? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2b9507d6a478d79968d94fb936fa1332"} device-1 | {"level":"info","message":"GET /devices/a02911c5-acad-4e89-8c66-ba1616928f4f? 200 16ms","method":"GET","requestID":"2b9507d6a478d79968d94fb936fa1332","responseTime":16,"status":200,"url":"/devices/a02911c5-acad-4e89-8c66-ba1616928f4f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA","level":"info","message":"auth send jwt","requestID":"92f9fddab3504c080643de05bcc1dc77"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"92f9fddab3504c080643de05bcc1dc77","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"92f9fddab3504c080643de05bcc1dc77"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:50Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.69073,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:50Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"92f9fddab3504c080643de05bcc1dc77","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240430,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"92f9fddab3504c080643de05bcc1dc77","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c"},"level":"info","message":"Attempting to run experiment","requestID":"92f9fddab3504c080643de05bcc1dc77"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c"},"level":"info","message":"Attempting to book experiment","requestID":"92f9fddab3504c080643de05bcc1dc77"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c"},"level":"info","message":"Successfully booked experiment","requestID":"92f9fddab3504c080643de05bcc1dc77"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"23226740-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2322b560-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.948756,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"23226740-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240430,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA"} authorization-1 | {"level":"info","message":"POST /authorize 200 14ms","method":"POST","requestID":"23226740-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48130","level":"info","msg":"Received request.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48130","level":"info","msg":"Sent response.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.775322,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2322b560-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240430,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"2322b560-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:47.134649661Z"}]},"request_id":"0c0bc576-e73f-48c8-b228-4fe0a2a62869","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240431.0516055} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"23226740-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:47.320456116Z"}]},"request_id":"6bb2cf33-2554-441d-955f-acada5e299c0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240431.053033} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"2322b560-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"23226740-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/2612466c-c717-46fe-8e89-fc44a22eeddb? 200 30ms","method":"GET","requestID":"23226740-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/devices/2612466c-c717-46fe-8e89-fc44a22eeddb?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2322b560-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/a02911c5-acad-4e89-8c66-ba1616928f4f? 200 29ms","method":"GET","requestID":"2322b560-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/devices/a02911c5-acad-4e89-8c66-ba1616928f4f?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c"},"level":"info","message":"Setting up experiment","requestID":"92f9fddab3504c080643de05bcc1dc77"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"92f9fddab3504c080643de05bcc1dc77"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"92f9fddab3504c080643de05bcc1dc77"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c"},"level":"info","message":"Successfully locked booking for experiment","requestID":"92f9fddab3504c080643de05bcc1dc77"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c"},"level":"info","message":"Successfully set up experiment","requestID":"92f9fddab3504c080643de05bcc1dc77"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"233f6520-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"233fb340-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c"},"level":"info","message":"Successfully running experiment","requestID":"92f9fddab3504c080643de05bcc1dc77"} authorization-1 | {"client_addr":"127.0.0.1:48130","level":"info","msg":"Received request.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48130","level":"info","msg":"Sent response.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.952301,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"233f6520-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240430,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"233f6520-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.609315,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"233fb340-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240430,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"233fb340-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:47.134649661Z"}]},"request_id":"f84560be-eea0-4ba1-a0bf-0f346f6df21e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240431.2573156} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:47.320456116Z"}]},"request_id":"c7a8483e-ca66-4505-91f5-ab69c1a87ccd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240431.2584853} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"233f6520-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"233fb340-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"233f6520-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/2612466c-c717-46fe-8e89-fc44a22eeddb? 200 50ms","method":"GET","requestID":"233f6520-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":50,"status":200,"url":"/devices/2612466c-c717-46fe-8e89-fc44a22eeddb?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"233fb340-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/a02911c5-acad-4e89-8c66-ba1616928f4f? 200 49ms","method":"GET","requestID":"233fb340-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":49,"status":200,"url":"/devices/a02911c5-acad-4e89-8c66-ba1616928f4f?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"234c8480-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e185acc1-905e-4278-951b-34fd74b60444","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240431.3130398} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.264248,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"234c8480-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"234c8480-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"234c8480-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/2612466c-c717-46fe-8e89-fc44a22eeddb/signaling 200 41ms","method":"POST","requestID":"234c8480-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":41,"status":200,"url":"/devices/2612466c-c717-46fe-8e89-fc44a22eeddb/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F911747f9-f006-4ac8-9c85-a200e6d1267c#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F911747f9-f006-4ac8-9c85-a200e6d1267c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"b9fc6f92-018a-4e9b-b7b6-397ab87dccd1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240431.324054} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4883b3b6-174b-4ed5-8d76-725e6957a3c9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240431.346418} authorization-1 | {"level":"info","message":"POST /relations/update 200 99ms","method":"POST","requestID":"92f9fddab3504c080643de05bcc1dc77","responseTime":99,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2353d780-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dfba41f3-7026-4cda-9ad5-0fadf46fbbad","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240431.3580375} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.897366,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2353d780-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"92f9fddab3504c080643de05bcc1dc77"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"2353d780-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2353d780-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/a02911c5-acad-4e89-8c66-ba1616928f4f/signaling 200 11ms","method":"POST","requestID":"2353d780-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/a02911c5-acad-4e89-8c66-ba1616928f4f/signaling"} gateway-1 | {"time_local":"18/Jun/2025:09:53:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"808","request_time":"0.546","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"92f9fddab3504c080643de05bcc1dc77"} experiment-1 | {"level":"info","message":"POST /experiments? 201 528ms","method":"POST","requestID":"92f9fddab3504c080643de05bcc1dc77","responseTime":528,"status":201,"url":"/experiments?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"92f9fddab3504c080643de05bcc1dc77"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2356bdb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"235a8e40-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMX0.q0IbaDoq0TRqJGvtfdUsqPNLCwg7p39j4g9LvoTGe80","level":"info","message":"auth send jwt","requestID":"b3ab9345972b076a897083f34e8bd032"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"b3ab9345972b076a897083f34e8bd032","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"b3ab9345972b076a897083f34e8bd032"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.959668,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48130","level":"info","msg":"Received request.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2356bdb0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240430,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"2356bdb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48130","level":"info","msg":"Sent response.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.814404,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"235a8e40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240430,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","method":"POST","requestID":"235a8e40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.976239,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b3ab9345972b076a897083f34e8bd032","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240431,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMX0.q0IbaDoq0TRqJGvtfdUsqPNLCwg7p39j4g9LvoTGe80"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"b3ab9345972b076a897083f34e8bd032","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:47.320456116Z"}]},"request_id":"8b66eb4b-86f7-4d23-9237-42f29e0b0470","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240431.4136295} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:47.134649661Z"}]},"request_id":"f5b6eff2-b155-4802-bab7-9d0ad219c9f3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240431.4145424} authorization-1 | {"level":"info","message":"POST /relations/query 200 29ms","method":"POST","requestID":"235a8e40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 29ms","method":"POST","requestID":"b3ab9345972b076a897083f34e8bd032","responseTime":29,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:47.134649661Z"}]},"request_id":"27796e81-d7c2-4059-8636-ff9c52b5a265","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240431.4434574} authorization-1 | {"level":"info","message":"POST /relations/query 200 30ms","method":"POST","requestID":"2356bdb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"235a8e40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/a02911c5-acad-4e89-8c66-ba1616928f4f? 200 50ms","method":"GET","requestID":"235a8e40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":50,"status":200,"url":"/devices/a02911c5-acad-4e89-8c66-ba1616928f4f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"b3ab9345972b076a897083f34e8bd032"} gateway-1 | {"time_local":"18/Jun/2025:09:53:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2612466c-c717-46fe-8e89-fc44a22eeddb? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.078","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b3ab9345972b076a897083f34e8bd032"} device-1 | {"level":"info","message":"GET /devices/2612466c-c717-46fe-8e89-fc44a22eeddb? 200 49ms","method":"GET","requestID":"b3ab9345972b076a897083f34e8bd032","responseTime":49,"status":200,"url":"/devices/2612466c-c717-46fe-8e89-fc44a22eeddb?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2356bdb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/2612466c-c717-46fe-8e89-fc44a22eeddb? 200 80ms","method":"GET","requestID":"2356bdb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":80,"status":200,"url":"/devices/2612466c-c717-46fe-8e89-fc44a22eeddb?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c"},"level":"info","message":"Building connection plan","requestID":"92f9fddab3504c080643de05bcc1dc77"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"4ad15d95-c7e1-4dbe-9672-d0d5bf8aa27b"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"03869e21-0113-401d-a2ab-95267c46f30b"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"9278049d-fb8d-4dff-a26b-5edd88bab329"}]},"level":"info","message":"Built pairwise service configurations","requestID":"92f9fddab3504c080643de05bcc1dc77"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMX0.q0IbaDoq0TRqJGvtfdUsqPNLCwg7p39j4g9LvoTGe80","level":"info","message":"auth send jwt","requestID":"247985086300acb02a12bc3db4b6a9cf"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"92f9fddab3504c080643de05bcc1dc77"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"247985086300acb02a12bc3db4b6a9cf","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"247985086300acb02a12bc3db4b6a9cf"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.906862,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"247985086300acb02a12bc3db4b6a9cf","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240431,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMX0.q0IbaDoq0TRqJGvtfdUsqPNLCwg7p39j4g9LvoTGe80"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"247985086300acb02a12bc3db4b6a9cf","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"2364a060-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.902394,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2364a060-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240430,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMH0.7gpiBiix6IK-5NzISB3Hs27DbXXcIOOl_NU6rEUKpVA"} authorization-1 | {"level":"info","message":"POST /authorize 200 25ms","method":"POST","requestID":"2364a060-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":25,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:47.320456116Z"}]},"request_id":"610196ba-e05a-4a2b-9b58-e0b95200788a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240431.4687314} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"247985086300acb02a12bc3db4b6a9cf","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"247985086300acb02a12bc3db4b6a9cf"} gateway-1 | {"time_local":"18/Jun/2025:09:53:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a02911c5-acad-4e89-8c66-ba1616928f4f? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"247985086300acb02a12bc3db4b6a9cf"} device-1 | {"level":"info","message":"GET /devices/a02911c5-acad-4e89-8c66-ba1616928f4f? 200 44ms","method":"GET","requestID":"247985086300acb02a12bc3db4b6a9cf","responseTime":44,"status":200,"url":"/devices/a02911c5-acad-4e89-8c66-ba1616928f4f?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"0b4d7383-c058-4f34-bf92-d1c73318c2b9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240431.5456731} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a0175dd4-978f-4205-bc81-1df66c3443d4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240431.545971} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"2364a060-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":40,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"2364a060-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"2364a060-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb'","requestID":"2364a060-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb'","requestID":"2364a060-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"2364a060-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 127ms","method":"POST","requestID":"2364a060-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":127,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"2364a060-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"92f9fddab3504c080643de05bcc1dc77"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"23821370-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"device":"2612466c-c717-46fe-8e89-fc44a22eeddb","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:51Z"} device-1 | {"content":{"canTrickle":true},"device":"2612466c-c717-46fe-8e89-fc44a22eeddb","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"device":"a02911c5-acad-4e89-8c66-ba1616928f4f","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"a02911c5-acad-4e89-8c66-ba1616928f4f","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f55ef29f-e211-4f9c-a8e6-0fada8434b07","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240431.6869879} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.93352,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"23821370-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","method":"POST","requestID":"23821370-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"23821370-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/2612466c-c717-46fe-8e89-fc44a22eeddb/signaling 200 39ms","method":"POST","requestID":"23821370-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":200,"url":"/devices/2612466c-c717-46fe-8e89-fc44a22eeddb/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2388ca30-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:51Z"} device-1 | {"content":{"sdp":"v=0\r\no=- 340139375824172430 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:gtCk\r\na=ice-pwd:N/uZJ56XKBrWt9Yui0WYp7Dm\r\na=ice-options:trickle\r\na=fingerprint:sha-256 5B:E6:30:61:C4:DD:4A:61:A2:DE:E9:C2:89:8B:96:6C:C8:5B:BA:5D:7E:EF:82:2C:3F:28:DF:DD:0C:C9:EC:EF\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"a02911c5-acad-4e89-8c66-ba1616928f4f","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bd25e41c-4ef1-4506-8fa5-adc3acd51bfc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240431.7044265} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.70224,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2388ca30-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"2388ca30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2388ca30-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/a02911c5-acad-4e89-8c66-ba1616928f4f/signaling 200 35ms","method":"POST","requestID":"2388ca30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/a02911c5-acad-4e89-8c66-ba1616928f4f/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 7198878856131830302 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:qIT9\r\na=ice-pwd:26WFf+0FHIwqF+DvuKvyJ/id\r\na=ice-options:trickle\r\na=fingerprint:sha-256 F8:A4:79:42:CE:E9:6D:FA:33:81:98:52:32:B9:F7:87:A2:AC:C2:09:C9:FD:D3:67:5C:9A:E4:F9:E2:1A:16:BB\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"2612466c-c717-46fe-8e89-fc44a22eeddb","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:192994157 1 udp 2113937151 8c546983-2395-40bc-b6ce-0bc8a1790e9b.local 34130 typ host generation 0 ufrag qIT9 network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"2612466c-c717-46fe-8e89-fc44a22eeddb","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb'"} device-1 | {"content":{"candidate":"candidate:2561374846 1 udp 1677729535 141.24.211.56 34130 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag qIT9 network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"2612466c-c717-46fe-8e89-fc44a22eeddb","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb'"} device-1 | {"content":{"candidate":"candidate:748102301 1 udp 2113937151 fe03f9cb-ac1e-41c1-b4d6-7ff7fbf20c10.local 38739 typ host generation 0 ufrag gtCk network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"a02911c5-acad-4e89-8c66-ba1616928f4f","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:2830780642 1 udp 1677729535 141.24.211.56 38739 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag gtCk network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"a02911c5-acad-4e89-8c66-ba1616928f4f","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f'"} device-1 | {"device":"a02911c5-acad-4e89-8c66-ba1616928f4f","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"2612466c-c717-46fe-8e89-fc44a22eeddb","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"2612466c-c717-46fe-8e89-fc44a22eeddb","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"05ce8133-579b-4c26-815e-00c2d789c4eb","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"a02911c5-acad-4e89-8c66-ba1616928f4f","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"a02911c5-acad-4e89-8c66-ba1616928f4f","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"2612466c-c717-46fe-8e89-fc44a22eeddb","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"2612466c-c717-46fe-8e89-fc44a22eeddb","deviceName":"JS Device 1","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0cbef78cf482638f4e1d40b1feb86e62","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"0cbef78cf482638f4e1d40b1feb86e62","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb"}}},"level":"info","message":"received a callback","requestID":"0cbef78cf482638f4e1d40b1feb86e62"} device-1 | {"data":{"peerconnection":"05ce8133-579b-4c26-815e-00c2d789c4eb","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 13ms","method":"POST","requestID":"0cbef78cf482638f4e1d40b1feb86e62","responseTime":13,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:53:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch","requestID":"0cbef78cf482638f4e1d40b1feb86e62"} device-1 | {"data":{"peerconnection":"05ce8133-579b-4c26-815e-00c2d789c4eb","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"05ce8133-579b-4c26-815e-00c2d789c4eb","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ef2a44727b1920905854ad5cb09082be","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ef2a44727b1920905854ad5cb09082be","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb"}}},"level":"info","message":"received a callback","requestID":"ef2a44727b1920905854ad5cb09082be"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMX0.q0IbaDoq0TRqJGvtfdUsqPNLCwg7p39j4g9LvoTGe80","level":"info","message":"auth send jwt","requestID":"9bd2e2cef2bc3d232c0be93ab66a80fe"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"9bd2e2cef2bc3d232c0be93ab66a80fe","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/911747f9-f006-4ac8-9c85-a200e6d1267c","requestID":"9bd2e2cef2bc3d232c0be93ab66a80fe"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"23a775c0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.720015,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9bd2e2cef2bc3d232c0be93ab66a80fe","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240431,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMX0.q0IbaDoq0TRqJGvtfdUsqPNLCwg7p39j4g9LvoTGe80"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"9bd2e2cef2bc3d232c0be93ab66a80fe","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F05ce8133-579b-4c26-815e-00c2d789c4eb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cda02039-0031-462f-8031-25ac622d8078","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240431.9308577} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.065683,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"23a775c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/911747f9-f006-4ac8-9c85-a200e6d1267c","requestID":"9bd2e2cef2bc3d232c0be93ab66a80fe"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","method":"POST","requestID":"23a775c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"23a775c0-4c2a-11f0-a085-a5c7b3a0c4e5"} gateway-1 | {"time_local":"18/Jun/2025:09:53:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/911747f9-f006-4ac8-9c85-a200e6d1267c HTTP/1.1","status": "200","body_bytes_sent":"879","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9bd2e2cef2bc3d232c0be93ab66a80fe"} experiment-1 | {"level":"info","message":"GET /experiments/911747f9-f006-4ac8-9c85-a200e6d1267c 200 44ms","method":"GET","requestID":"9bd2e2cef2bc3d232c0be93ab66a80fe","responseTime":44,"status":200,"url":"/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c"} device-1 | {"level":"info","message":"GET /peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb 200 39ms","method":"GET","requestID":"23a775c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":200,"url":"/peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 129ms","method":"POST","requestID":"ef2a44727b1920905854ad5cb09082be","responseTime":129,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:53:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.133","http_referrer":"","http_user_agent":"node-fetch","requestID":"ef2a44727b1920905854ad5cb09082be"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"23b99e30-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7b761f96-b64e-4507-a113-c5559ce11f11","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240432.0254745} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.405718,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"23b99e30-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"23b99e30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"23b99e30-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/2612466c-c717-46fe-8e89-fc44a22eeddb/signaling 200 12ms","method":"POST","requestID":"23b99e30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/2612466c-c717-46fe-8e89-fc44a22eeddb/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"23bbe820-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4392af94-738e-40de-8b33-ef05ccc9c3ca","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240432.0383074} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.370487,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"23bbe820-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"23bbe820-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMn0.kslefftVeJ3_lz7hiq3a6lpttcxOAg-A6lUr8oUWZmQ","level":"info","message":"auth send jwt","requestID":"3d06543b73da11ff3abbef61d34c029f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3d06543b73da11ff3abbef61d34c029f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"23bbe820-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/a02911c5-acad-4e89-8c66-ba1616928f4f/signaling 200 34ms","method":"POST","requestID":"23bbe820-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/a02911c5-acad-4e89-8c66-ba1616928f4f/signaling"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/911747f9-f006-4ac8-9c85-a200e6d1267c","requestID":"3d06543b73da11ff3abbef61d34c029f"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:52Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.927325,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3d06543b73da11ff3abbef61d34c029f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240432,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMn0.kslefftVeJ3_lz7hiq3a6lpttcxOAg-A6lUr8oUWZmQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3d06543b73da11ff3abbef61d34c029f","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/911747f9-f006-4ac8-9c85-a200e6d1267c","requestID":"3d06543b73da11ff3abbef61d34c029f"} gateway-1 | {"time_local":"18/Jun/2025:09:53:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/911747f9-f006-4ac8-9c85-a200e6d1267c HTTP/1.1","status": "200","body_bytes_sent":"881","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3d06543b73da11ff3abbef61d34c029f"} experiment-1 | {"level":"info","message":"GET /experiments/911747f9-f006-4ac8-9c85-a200e6d1267c 200 11ms","method":"GET","requestID":"3d06543b73da11ff3abbef61d34c029f","responseTime":11,"status":200,"url":"/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMn0.kslefftVeJ3_lz7hiq3a6lpttcxOAg-A6lUr8oUWZmQ","level":"info","message":"auth send jwt","requestID":"c6fcdc95516d3fd17ca25a15b95f1dc6"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c6fcdc95516d3fd17ca25a15b95f1dc6","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/911747f9-f006-4ac8-9c85-a200e6d1267c","requestID":"c6fcdc95516d3fd17ca25a15b95f1dc6"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:52Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":24.895738,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:52Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c6fcdc95516d3fd17ca25a15b95f1dc6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240432,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMn0.kslefftVeJ3_lz7hiq3a6lpttcxOAg-A6lUr8oUWZmQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"c6fcdc95516d3fd17ca25a15b95f1dc6","responseTime":27,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c"},"level":"info","message":"Attempting to finish experiment","requestID":"c6fcdc95516d3fd17ca25a15b95f1dc6"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"23c92e90-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:52Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.718196,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:52Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"23c92e90-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240432,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMn0.kslefftVeJ3_lz7hiq3a6lpttcxOAg-A6lUr8oUWZmQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"23c92e90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb","device":"2612466c-c717-46fe-8e89-fc44a22eeddb","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb","device":"a02911c5-acad-4e89-8c66-ba1616928f4f","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"05ce8133-579b-4c26-815e-00c2d789c4eb","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e3255c1d42a5acb1a9e82b105242e48f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e3255c1d42a5acb1a9e82b105242e48f","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"780328beea9569beddba23a9966e0e74","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"780328beea9569beddba23a9966e0e74","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb"}}},"level":"info","message":"received a callback","requestID":"e3255c1d42a5acb1a9e82b105242e48f"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb"}}},"level":"info","message":"received a callback","requestID":"780328beea9569beddba23a9966e0e74"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F05ce8133-579b-4c26-815e-00c2d789c4eb': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F05ce8133-579b-4c26-815e-00c2d789c4eb","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"4c69c01f-db9b-485a-9c2b-735aec6b1660","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240432.2094414} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c72f1848-4d23-4c23-9441-c53fe9e22bb6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240432.213627} authorization-1 | {"level":"info","message":"POST /relations/update 200 83ms","method":"POST","requestID":"23c92e90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":83,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"05ce8133-579b-4c26-815e-00c2d789c4eb","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"23c92e90-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb 204 114ms","method":"DELETE","requestID":"23c92e90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":114,"status":204,"url":"/peerconnections/05ce8133-579b-4c26-815e-00c2d789c4eb"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c"},"level":"info","message":"Successfully finished experiment","requestID":"c6fcdc95516d3fd17ca25a15b95f1dc6"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"23e0fc50-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2612466c-c717-46fe-8e89-fc44a22eeddb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"23cc283c-f996-47db-8ed8-000c08ee4799","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240432.308618} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.373572,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"23e0fc50-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"23e0fc50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"23e0fc50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/2612466c-c717-46fe-8e89-fc44a22eeddb/signaling 200 36ms","method":"POST","requestID":"23e0fc50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/2612466c-c717-46fe-8e89-fc44a22eeddb/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"23e716d0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F911747f9-f006-4ac8-9c85-a200e6d1267c': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F911747f9-f006-4ac8-9c85-a200e6d1267c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"b9cd939f-8ae1-4ba3-946e-a6a36adc5938","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240432.3180594} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e5dde042-1d11-4f92-9952-447beaf921c4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240432.3184206} authorization-1 | {"level":"info","message":"POST /relations/update 200 47ms","method":"POST","requestID":"c6fcdc95516d3fd17ca25a15b95f1dc6","responseTime":47,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02911c5-acad-4e89-8c66-ba1616928f4f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6ac0ac6b-adf8-4b28-a5d0-b0f4c56ecaee","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240432.3235395} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.490096,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"23e716d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"23e716d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"23e716d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/a02911c5-acad-4e89-8c66-ba1616928f4f/signaling 200 14ms","method":"POST","requestID":"23e716d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/a02911c5-acad-4e89-8c66-ba1616928f4f/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/911747f9-f006-4ac8-9c85-a200e6d1267c","requestID":"c6fcdc95516d3fd17ca25a15b95f1dc6"} gateway-1 | {"time_local":"18/Jun/2025:09:53:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/911747f9-f006-4ac8-9c85-a200e6d1267c HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.341","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c6fcdc95516d3fd17ca25a15b95f1dc6"} experiment-1 | {"level":"info","message":"DELETE /experiments/911747f9-f006-4ac8-9c85-a200e6d1267c 204 339ms","method":"DELETE","requestID":"c6fcdc95516d3fd17ca25a15b95f1dc6","responseTime":339,"status":204,"url":"/experiments/911747f9-f006-4ac8-9c85-a200e6d1267c"} gateway-1 | {"time_local":"18/Jun/2025:09:53:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.289","http_referrer":"","http_user_agent":"node-fetch","requestID":"e3255c1d42a5acb1a9e82b105242e48f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 278ms","method":"POST","requestID":"e3255c1d42a5acb1a9e82b105242e48f","responseTime":278,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMn0.kslefftVeJ3_lz7hiq3a6lpttcxOAg-A6lUr8oUWZmQ","level":"info","message":"auth send jwt","requestID":"c23c4c605dd81c0708ef28420211fd41"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c23c4c605dd81c0708ef28420211fd41","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 276ms","method":"POST","requestID":"780328beea9569beddba23a9966e0e74","responseTime":276,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:53:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.287","http_referrer":"","http_user_agent":"node-fetch","requestID":"780328beea9569beddba23a9966e0e74"} device-1 | {"level":"info","message":"postDevices called","requestID":"c23c4c605dd81c0708ef28420211fd41"} gateway-1 | {"time_local":"18/Jun/2025:09:53:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3005","request_time":"1.921","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"166b21ea818295810f041c0d85d4a974"} gateway-1 | {"time_local":"18/Jun/2025:09:53:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3004","request_time":"1.912","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"70b59965d3d1a7d0bb2cf2bfc002b051"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:52Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.721935,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c23c4c605dd81c0708ef28420211fd41","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240432,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMn0.kslefftVeJ3_lz7hiq3a6lpttcxOAg-A6lUr8oUWZmQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"c23c4c605dd81c0708ef28420211fd41","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/2612466c-c717-46fe-8e89-fc44a22eeddb' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/a02911c5-acad-4e89-8c66-ba1616928f4f' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d5d09ed4-1fda-4aaf-bb4f-6ada04077e72","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240432.4978943} authorization-1 | {"level":"info","message":"POST /relations/query 200 22ms","method":"POST","requestID":"c23c4c605dd81c0708ef28420211fd41","responseTime":23,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5a69d81d-e53e-4c4c-8638-d197b4a846a1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240432.5046213} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"c23c4c605dd81c0708ef28420211fd41","responseTime":6,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"a58405f5-0888-4c67-a337-eb1765418d73","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240432.517803} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5570a44d-ea7d-4c03-a97d-05c1ad9467e1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240432.5184205} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"c23c4c605dd81c0708ef28420211fd41","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:52.517792671Z"}]},"request_id":"ed5e199f-e732-4b3c-8219-ad238ccf0b14","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240432.5470793} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c23c4c605dd81c0708ef28420211fd41","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"c23c4c605dd81c0708ef28420211fd41"} gateway-1 | {"time_local":"18/Jun/2025:09:53:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.099","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c23c4c605dd81c0708ef28420211fd41"} device-1 | {"level":"info","message":"POST /devices? 201 89ms","method":"POST","requestID":"c23c4c605dd81c0708ef28420211fd41","responseTime":89,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMn0.kslefftVeJ3_lz7hiq3a6lpttcxOAg-A6lUr8oUWZmQ","level":"info","message":"auth send jwt","requestID":"1c99fb58ac2065cdd0bd8b3c99ceeda1"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1c99fb58ac2065cdd0bd8b3c99ceeda1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"1c99fb58ac2065cdd0bd8b3c99ceeda1"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:52Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.711187,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"1c99fb58ac2065cdd0bd8b3c99ceeda1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240432,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzMn0.kslefftVeJ3_lz7hiq3a6lpttcxOAg-A6lUr8oUWZmQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"1c99fb58ac2065cdd0bd8b3c99ceeda1","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"43018114-4ea6-4677-b493-0f7e7f69ab22","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240432.6063368} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1c99fb58ac2065cdd0bd8b3c99ceeda1","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"859bf7e0-c4f1-4f09-88b6-f2eb5ab618cf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240432.611472} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"1c99fb58ac2065cdd0bd8b3c99ceeda1","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"70c6b17e-f463-49e4-a542-38bf262dcf60","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240432.6427188} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"a1e2e12d-f6a1-48c0-bd3f-fb0d61fe265c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240432.6431105} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"1c99fb58ac2065cdd0bd8b3c99ceeda1","responseTime":35,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:52.643095015Z"}]},"request_id":"c6eecf0e-90e7-4dfd-a82c-dc9d7ad47f06","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240432.648359} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1c99fb58ac2065cdd0bd8b3c99ceeda1","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"1c99fb58ac2065cdd0bd8b3c99ceeda1"} device-1 | {"level":"info","message":"POST /devices? 201 95ms","method":"POST","requestID":"1c99fb58ac2065cdd0bd8b3c99ceeda1","responseTime":95,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:53:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.099","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1c99fb58ac2065cdd0bd8b3c99ceeda1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzM30.2ToStRUFCxEjhQuqF0hH0t6ix2Vv9NeELD6XSUCn9eY","level":"info","message":"auth send jwt","requestID":"a1840c1d2d604ee61f30bf4e5a5e5a25"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a1840c1d2d604ee61f30bf4e5a5e5a25","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"a1840c1d2d604ee61f30bf4e5a5e5a25"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:53Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.663965,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:53Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a1840c1d2d604ee61f30bf4e5a5e5a25","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240433,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzM30.2ToStRUFCxEjhQuqF0hH0t6ix2Vv9NeELD6XSUCn9eY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"a1840c1d2d604ee61f30bf4e5a5e5a25","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:52.643095015Z"}]},"request_id":"175c9312-563c-493b-bbd6-872a041386d4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240433.7173426} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"a1840c1d2d604ee61f30bf4e5a5e5a25","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"773df0bd-b96f-43f3-aae6-76fad99bea55","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240433.7229443} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"a1840c1d2d604ee61f30bf4e5a5e5a25","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:52.643095015Z"}]},"request_id":"2aaf3076-c47c-4a56-ae12-5152ceb4b03a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240433.7587824} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a1840c1d2d604ee61f30bf4e5a5e5a25","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"a1840c1d2d604ee61f30bf4e5a5e5a25"} gateway-1 | {"time_local":"18/Jun/2025:09:53:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/8b62d88f-396f-4502-9841-49b9795a297e HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.060","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"a1840c1d2d604ee61f30bf4e5a5e5a25"} device-1 | {"level":"info","message":"PATCH /devices/8b62d88f-396f-4502-9841-49b9795a297e 200 55ms","method":"PATCH","requestID":"a1840c1d2d604ee61f30bf4e5a5e5a25","responseTime":55,"status":200,"url":"/devices/8b62d88f-396f-4502-9841-49b9795a297e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzM30.2ToStRUFCxEjhQuqF0hH0t6ix2Vv9NeELD6XSUCn9eY","level":"info","message":"auth send jwt","requestID":"c091ea5d578fa16e0567534b9d483fec"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c091ea5d578fa16e0567534b9d483fec","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"c091ea5d578fa16e0567534b9d483fec"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:53Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.869829,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:53Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c091ea5d578fa16e0567534b9d483fec","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240433,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzM30.2ToStRUFCxEjhQuqF0hH0t6ix2Vv9NeELD6XSUCn9eY"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"c091ea5d578fa16e0567534b9d483fec","responseTime":27,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"c091ea5d578fa16e0567534b9d483fec"} device-1 | {"level":"info","message":"POST /devices/8b62d88f-396f-4502-9841-49b9795a297e/websocket 200 43ms","method":"POST","requestID":"c091ea5d578fa16e0567534b9d483fec","responseTime":43,"status":200,"url":"/devices/8b62d88f-396f-4502-9841-49b9795a297e/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:53:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8b62d88f-396f-4502-9841-49b9795a297e/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.045","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"c091ea5d578fa16e0567534b9d483fec"} device-1 | {"level":"info","message":"device 'http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"db845156c09727d10b168ff94261d892","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"db845156c09727d10b168ff94261d892","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:53:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b6f815d0-156f-450b-bac2-e67602212d19/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"db845156c09727d10b168ff94261d892"} device-1 | {"level":"info","message":"OPTIONS /devices/b6f815d0-156f-450b-bac2-e67602212d19/websocket 200 1ms","method":"OPTIONS","requestID":"db845156c09727d10b168ff94261d892","responseTime":1,"status":200,"url":"/devices/b6f815d0-156f-450b-bac2-e67602212d19/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNH0.O5qpSBbvpNCmd9kOxKDV8xcu35yKA8KJqK3ieJRUpwM","level":"info","message":"auth send jwt","requestID":"6c540e7a5cb349dce24d1dc32bb6003c"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"6c540e7a5cb349dce24d1dc32bb6003c","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"6c540e7a5cb349dce24d1dc32bb6003c"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:54Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.189524,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6c540e7a5cb349dce24d1dc32bb6003c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240434,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNH0.O5qpSBbvpNCmd9kOxKDV8xcu35yKA8KJqK3ieJRUpwM"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"6c540e7a5cb349dce24d1dc32bb6003c","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"6c540e7a5cb349dce24d1dc32bb6003c"} device-1 | {"level":"info","message":"POST /devices/b6f815d0-156f-450b-bac2-e67602212d19/websocket 200 30ms","method":"POST","requestID":"6c540e7a5cb349dce24d1dc32bb6003c","responseTime":30,"status":200,"url":"/devices/b6f815d0-156f-450b-bac2-e67602212d19/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:53:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b6f815d0-156f-450b-bac2-e67602212d19/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.036","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6c540e7a5cb349dce24d1dc32bb6003c"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"3e2a7cf36c676aab73dd72a6db331587","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3e2a7cf36c676aab73dd72a6db331587","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:53:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b6f815d0-156f-450b-bac2-e67602212d19? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3e2a7cf36c676aab73dd72a6db331587"} device-1 | {"level":"info","message":"OPTIONS /devices/b6f815d0-156f-450b-bac2-e67602212d19? 200 1ms","method":"OPTIONS","requestID":"3e2a7cf36c676aab73dd72a6db331587","responseTime":1,"status":200,"url":"/devices/b6f815d0-156f-450b-bac2-e67602212d19?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNX0.Rzf2bep8EwpBtc8zvRbRmaLc9A_4hjy-AN636IDL9DI","level":"info","message":"auth send jwt","requestID":"9a0b0d4a31804c39d9036506a45449f8"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9a0b0d4a31804c39d9036506a45449f8","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"9a0b0d4a31804c39d9036506a45449f8"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.826551,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9a0b0d4a31804c39d9036506a45449f8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240435,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNX0.Rzf2bep8EwpBtc8zvRbRmaLc9A_4hjy-AN636IDL9DI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"9a0b0d4a31804c39d9036506a45449f8","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:52.517792671Z"}]},"request_id":"b2ea6364-41c1-4307-a155-8f76f23ffa3d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.0690842} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"9a0b0d4a31804c39d9036506a45449f8","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c7c4a435-2c90-46fc-9942-783c467f1640","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.0735326} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"9a0b0d4a31804c39d9036506a45449f8","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:52.517792671Z"}]},"request_id":"a3ef9d72-8b53-4d68-8e5a-5acd40e043ae","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.0821924} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"9a0b0d4a31804c39d9036506a45449f8","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"9a0b0d4a31804c39d9036506a45449f8"} gateway-1 | {"time_local":"18/Jun/2025:09:53:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/b6f815d0-156f-450b-bac2-e67602212d19? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.032","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9a0b0d4a31804c39d9036506a45449f8"} device-1 | {"level":"info","message":"PATCH /devices/b6f815d0-156f-450b-bac2-e67602212d19? 200 26ms","method":"PATCH","requestID":"9a0b0d4a31804c39d9036506a45449f8","responseTime":26,"status":200,"url":"/devices/b6f815d0-156f-450b-bac2-e67602212d19?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNX0.Rzf2bep8EwpBtc8zvRbRmaLc9A_4hjy-AN636IDL9DI","level":"info","message":"auth send jwt","requestID":"705fe3aabfb789da939d7b4cf3b9fb1c"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"705fe3aabfb789da939d7b4cf3b9fb1c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"705fe3aabfb789da939d7b4cf3b9fb1c"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.921838,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"705fe3aabfb789da939d7b4cf3b9fb1c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240435,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNX0.Rzf2bep8EwpBtc8zvRbRmaLc9A_4hjy-AN636IDL9DI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"705fe3aabfb789da939d7b4cf3b9fb1c","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:52.517792671Z"}]},"request_id":"a94ebefa-8ba1-4419-bf9f-ef909abbbf9f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.103803} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"705fe3aabfb789da939d7b4cf3b9fb1c","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"705fe3aabfb789da939d7b4cf3b9fb1c"} gateway-1 | {"time_local":"18/Jun/2025:09:53:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b6f815d0-156f-450b-bac2-e67602212d19? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"705fe3aabfb789da939d7b4cf3b9fb1c"} device-1 | {"level":"info","message":"GET /devices/b6f815d0-156f-450b-bac2-e67602212d19? 200 16ms","method":"GET","requestID":"705fe3aabfb789da939d7b4cf3b9fb1c","responseTime":16,"status":200,"url":"/devices/b6f815d0-156f-450b-bac2-e67602212d19?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNX0.Rzf2bep8EwpBtc8zvRbRmaLc9A_4hjy-AN636IDL9DI","level":"info","message":"auth send jwt","requestID":"8f1af25d1c7fdb786cb459ea3b864a96"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8f1af25d1c7fdb786cb459ea3b864a96","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8f1af25d1c7fdb786cb459ea3b864a96"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.944542,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8f1af25d1c7fdb786cb459ea3b864a96","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240435,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNX0.Rzf2bep8EwpBtc8zvRbRmaLc9A_4hjy-AN636IDL9DI"} authorization-1 | {"level":"info","message":"POST /authorize 200 24ms","method":"POST","requestID":"8f1af25d1c7fdb786cb459ea3b864a96","responseTime":24,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:52.643095015Z"}]},"request_id":"ddfffe9f-52f4-4fda-86ff-d516cbe7d6ae","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.1441982} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8f1af25d1c7fdb786cb459ea3b864a96","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8f1af25d1c7fdb786cb459ea3b864a96"} device-1 | {"level":"info","message":"GET /devices/8b62d88f-396f-4502-9841-49b9795a297e? 200 33ms","method":"GET","requestID":"8f1af25d1c7fdb786cb459ea3b864a96","responseTime":33,"status":200,"url":"/devices/8b62d88f-396f-4502-9841-49b9795a297e?"} gateway-1 | {"time_local":"18/Jun/2025:09:53:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8b62d88f-396f-4502-9841-49b9795a297e? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8f1af25d1c7fdb786cb459ea3b864a96"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNX0.Rzf2bep8EwpBtc8zvRbRmaLc9A_4hjy-AN636IDL9DI","level":"info","message":"auth send jwt","requestID":"2c45a830684b1975983d9b6be9679b30"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2c45a830684b1975983d9b6be9679b30","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"2c45a830684b1975983d9b6be9679b30"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.692562,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2c45a830684b1975983d9b6be9679b30","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240435,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNX0.Rzf2bep8EwpBtc8zvRbRmaLc9A_4hjy-AN636IDL9DI"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"2c45a830684b1975983d9b6be9679b30","responseTime":27,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd61bd15-b80f-450d-878b-7f4035f11280"},"level":"info","message":"Attempting to run experiment","requestID":"2c45a830684b1975983d9b6be9679b30"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd61bd15-b80f-450d-878b-7f4035f11280"},"level":"info","message":"Attempting to book experiment","requestID":"2c45a830684b1975983d9b6be9679b30"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd61bd15-b80f-450d-878b-7f4035f11280"},"level":"info","message":"Successfully booked experiment","requestID":"2c45a830684b1975983d9b6be9679b30"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"25a76470-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"25a7b290-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.655933,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"client_addr":"127.0.0.1:48130","level":"info","msg":"Received request.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"25a76470-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240435,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNX0.Rzf2bep8EwpBtc8zvRbRmaLc9A_4hjy-AN636IDL9DI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"25a76470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48130","level":"info","msg":"Sent response.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.634356,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"25a7b290-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240435,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNX0.Rzf2bep8EwpBtc8zvRbRmaLc9A_4hjy-AN636IDL9DI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"25a7b290-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:52.517792671Z"}]},"request_id":"115f27dc-8a1a-4bca-92fa-3b171b881f61","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.2637656} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"25a76470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:52.643095015Z"}]},"request_id":"5a768ad4-a0b5-444c-9cc3-516e7f6625d3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.2644951} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"25a7b290-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"25a76470-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b6f815d0-156f-450b-bac2-e67602212d19? 200 15ms","method":"GET","requestID":"25a76470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":15,"status":200,"url":"/devices/b6f815d0-156f-450b-bac2-e67602212d19?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"25a7b290-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/8b62d88f-396f-4502-9841-49b9795a297e? 200 14ms","method":"GET","requestID":"25a7b290-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/8b62d88f-396f-4502-9841-49b9795a297e?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd61bd15-b80f-450d-878b-7f4035f11280"},"level":"info","message":"Setting up experiment","requestID":"2c45a830684b1975983d9b6be9679b30"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"2c45a830684b1975983d9b6be9679b30"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd61bd15-b80f-450d-878b-7f4035f11280"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"2c45a830684b1975983d9b6be9679b30"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd61bd15-b80f-450d-878b-7f4035f11280"},"level":"info","message":"Successfully locked booking for experiment","requestID":"2c45a830684b1975983d9b6be9679b30"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd61bd15-b80f-450d-878b-7f4035f11280"},"level":"info","message":"Successfully set up experiment","requestID":"2c45a830684b1975983d9b6be9679b30"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"25af0590-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"25af2ca0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd61bd15-b80f-450d-878b-7f4035f11280"},"level":"info","message":"Successfully running experiment","requestID":"2c45a830684b1975983d9b6be9679b30"} authorization-1 | {"client_addr":"127.0.0.1:48130","level":"info","msg":"Received request.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"client_addr":"127.0.0.1:48130","level":"info","msg":"Sent response.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.693403,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"25af0590-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240435,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNX0.Rzf2bep8EwpBtc8zvRbRmaLc9A_4hjy-AN636IDL9DI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"25af0590-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.760379,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"25af2ca0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240435,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNX0.Rzf2bep8EwpBtc8zvRbRmaLc9A_4hjy-AN636IDL9DI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"25af2ca0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:52.517792671Z"}]},"request_id":"56f952e4-2652-44d4-a568-34a6231c7dab","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.31512} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"25af0590-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:52.643095015Z"}]},"request_id":"b4671274-a774-4c8d-9472-27a435d3f3f9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.3160775} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"25af2ca0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"25af0590-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b6f815d0-156f-450b-bac2-e67602212d19? 200 16ms","method":"GET","requestID":"25af0590-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":16,"status":200,"url":"/devices/b6f815d0-156f-450b-bac2-e67602212d19?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcd61bd15-b80f-450d-878b-7f4035f11280#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcd61bd15-b80f-450d-878b-7f4035f11280","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"3a3e762d-711d-44ba-90ec-2eb97be02ad7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.3200712} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"256f3f0b-751e-461f-a250-686fec1b09ff","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.3203888} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"25af2ca0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/8b62d88f-396f-4502-9841-49b9795a297e? 200 16ms","method":"GET","requestID":"25af2ca0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":16,"status":200,"url":"/devices/8b62d88f-396f-4502-9841-49b9795a297e?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"2c45a830684b1975983d9b6be9679b30","responseTime":13,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"25b260f0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:55Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/cd61bd15-b80f-450d-878b-7f4035f11280","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"2c45a830684b1975983d9b6be9679b30"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fb447153-1bac-48d9-8d62-a88a3c01c2ae","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.3332987} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.523483,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:55Z"} gateway-1 | {"time_local":"18/Jun/2025:09:53:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"812","request_time":"0.185","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2c45a830684b1975983d9b6be9679b30"} experiment-1 | {"level":"info","message":"POST /experiments? 201 179ms","method":"POST","requestID":"2c45a830684b1975983d9b6be9679b30","responseTime":179,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"25b260f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"25b260f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"25b260f0-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNX0.Rzf2bep8EwpBtc8zvRbRmaLc9A_4hjy-AN636IDL9DI","level":"info","message":"auth send jwt","requestID":"07958ff6db4a76e05aa8ca8fb81ab8b6"} device-1 | {"level":"info","message":"POST /devices/b6f815d0-156f-450b-bac2-e67602212d19/signaling 200 11ms","method":"POST","requestID":"25b260f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/b6f815d0-156f-450b-bac2-e67602212d19/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"07958ff6db4a76e05aa8ca8fb81ab8b6","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"07958ff6db4a76e05aa8ca8fb81ab8b6"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:55Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"25b4aae0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.760173,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"07958ff6db4a76e05aa8ca8fb81ab8b6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240435,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNX0.Rzf2bep8EwpBtc8zvRbRmaLc9A_4hjy-AN636IDL9DI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"07958ff6db4a76e05aa8ca8fb81ab8b6","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:52.517792671Z"}]},"request_id":"52764fa5-812d-441a-8290-89587a0f2d73","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.3469696} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"707f7fc3-7e2e-4c1d-b537-c67adb4a659a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.3470798} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"07958ff6db4a76e05aa8ca8fb81ab8b6","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.20361,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"25b4aae0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"25b4aae0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"07958ff6db4a76e05aa8ca8fb81ab8b6"} gateway-1 | {"time_local":"18/Jun/2025:09:53:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b6f815d0-156f-450b-bac2-e67602212d19? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"07958ff6db4a76e05aa8ca8fb81ab8b6"} device-1 | {"level":"info","message":"GET /devices/b6f815d0-156f-450b-bac2-e67602212d19? 200 13ms","method":"GET","requestID":"07958ff6db4a76e05aa8ca8fb81ab8b6","responseTime":13,"status":200,"url":"/devices/b6f815d0-156f-450b-bac2-e67602212d19?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"25b4aae0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/8b62d88f-396f-4502-9841-49b9795a297e/signaling 200 11ms","method":"POST","requestID":"25b4aae0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/8b62d88f-396f-4502-9841-49b9795a297e/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd61bd15-b80f-450d-878b-7f4035f11280"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"2c45a830684b1975983d9b6be9679b30"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"25b6a6b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNX0.Rzf2bep8EwpBtc8zvRbRmaLc9A_4hjy-AN636IDL9DI","level":"info","message":"auth send jwt","requestID":"7c7d21b1055545341895c0e1e81327cb"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7c7d21b1055545341895c0e1e81327cb","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"25b6cdc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7c7d21b1055545341895c0e1e81327cb"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Received request.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"client_addr":"127.0.0.1:48128","level":"info","msg":"Sent response.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.921331,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"client_addr":"127.0.0.1:48130","level":"info","msg":"Received request.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"25b6a6b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240435,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNX0.Rzf2bep8EwpBtc8zvRbRmaLc9A_4hjy-AN636IDL9DI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"25b6a6b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48130","level":"info","msg":"Sent response.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.701293,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"25b6cdc0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240435,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNX0.Rzf2bep8EwpBtc8zvRbRmaLc9A_4hjy-AN636IDL9DI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"25b6cdc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.494685,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7c7d21b1055545341895c0e1e81327cb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240435,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNX0.Rzf2bep8EwpBtc8zvRbRmaLc9A_4hjy-AN636IDL9DI"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","method":"POST","requestID":"7c7d21b1055545341895c0e1e81327cb","responseTime":9,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:52.643095015Z"}]},"request_id":"3a7cda2c-333c-4994-9b3f-559e7bbaab5e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.3663104} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:52.517792671Z"}]},"request_id":"5af472b2-650b-4c75-9553-d269d8565594","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.3672285} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"25b6cdc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"25b6a6b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:52.643095015Z"}]},"request_id":"d9970f2d-5d02-46ee-ac7f-daeb0d54bcaf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.3714883} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"7c7d21b1055545341895c0e1e81327cb","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"25b6cdc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/8b62d88f-396f-4502-9841-49b9795a297e? 200 19ms","method":"GET","requestID":"25b6cdc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":19,"status":200,"url":"/devices/8b62d88f-396f-4502-9841-49b9795a297e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"25b6a6b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b6f815d0-156f-450b-bac2-e67602212d19? 200 22ms","method":"GET","requestID":"25b6a6b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":22,"status":200,"url":"/devices/b6f815d0-156f-450b-bac2-e67602212d19?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7c7d21b1055545341895c0e1e81327cb"} gateway-1 | {"time_local":"18/Jun/2025:09:53:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8b62d88f-396f-4502-9841-49b9795a297e? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7c7d21b1055545341895c0e1e81327cb"} device-1 | {"level":"info","message":"GET /devices/8b62d88f-396f-4502-9841-49b9795a297e? 200 22ms","method":"GET","requestID":"7c7d21b1055545341895c0e1e81327cb","responseTime":22,"status":200,"url":"/devices/8b62d88f-396f-4502-9841-49b9795a297e?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd61bd15-b80f-450d-878b-7f4035f11280"},"level":"info","message":"Building connection plan","requestID":"2c45a830684b1975983d9b6be9679b30"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"3a0b7cac-77ce-48c1-a865-5d0803e85aa9"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"4fe2a6bd-e544-4f18-9c11-8187752066c8"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"90b77af6-2971-4f38-87e1-93b9d47b404c"}]},"level":"info","message":"Built pairwise service configurations","requestID":"2c45a830684b1975983d9b6be9679b30"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"2c45a830684b1975983d9b6be9679b30"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"25bac560-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.662742,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"25bac560-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240435,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzNX0.Rzf2bep8EwpBtc8zvRbRmaLc9A_4hjy-AN636IDL9DI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"25bac560-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"9d3d0699-181b-4f87-bce2-9839b97cc59f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.39433} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ac0877a1-8025-41b8-80eb-23fd7c074029","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.3945124} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"25bac560-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"25bac560-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"25bac560-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/e61b6144-c440-4809-8bce-2ccf38bcbadc'","requestID":"25bac560-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/e61b6144-c440-4809-8bce-2ccf38bcbadc'","requestID":"25bac560-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"25bac560-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 53ms","method":"POST","requestID":"25bac560-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":53,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"25bac560-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd61bd15-b80f-450d-878b-7f4035f11280"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"2c45a830684b1975983d9b6be9679b30"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"25caf200-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"aad552ef-3cb7-4498-aab0-c88185d3002a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.4931586} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.601325,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"25caf200-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"25caf200-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"25caf200-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b6f815d0-156f-450b-bac2-e67602212d19/signaling 200 34ms","method":"POST","requestID":"25caf200-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/b6f815d0-156f-450b-bac2-e67602212d19/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"25d09750-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"device":"b6f815d0-156f-450b-bac2-e67602212d19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"b6f815d0-156f-450b-bac2-e67602212d19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"61cf12d8-d180-4845-b760-33c17f79daa8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240435.5305746} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.955028,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"25d09750-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"25d09750-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"content":{"sdp":"v=0\r\no=- 5640572240693096438 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:fj4u\r\na=ice-pwd:4+jLjXXxF8tQnI1KD8UWI2JN\r\na=ice-options:trickle\r\na=fingerprint:sha-256 0B:52:EA:A5:AF:23:51:07:FF:F3:1A:16:FB:62:8F:06:87:C2:B9:ED:F6:42:95:E7:1A:49:97:6A:4D:84:A4:5A\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"b6f815d0-156f-450b-bac2-e67602212d19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"25d09750-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/8b62d88f-396f-4502-9841-49b9795a297e/signaling 200 14ms","method":"POST","requestID":"25d09750-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/8b62d88f-396f-4502-9841-49b9795a297e/signaling"} device-1 | {"device":"8b62d88f-396f-4502-9841-49b9795a297e","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"e61b6144-c440-4809-8bce-2ccf38bcbadc","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"8b62d88f-396f-4502-9841-49b9795a297e","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"8b62d88f-396f-4502-9841-49b9795a297e","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"8b62d88f-396f-4502-9841-49b9795a297e","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"8b62d88f-396f-4502-9841-49b9795a297e","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/e61b6144-c440-4809-8bce-2ccf38bcbadc' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e61b6144-c440-4809-8bce-2ccf38bcbadc","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"18d1456f4c75d687a6e367ea7ad53382","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"18d1456f4c75d687a6e367ea7ad53382","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/e61b6144-c440-4809-8bce-2ccf38bcbadc"}}},"level":"info","message":"received a callback","requestID":"18d1456f4c75d687a6e367ea7ad53382"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"18d1456f4c75d687a6e367ea7ad53382","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:53:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"18d1456f4c75d687a6e367ea7ad53382"} device-1 | {"content":{"candidate":"candidate:775393449 1 udp 2113937151 1628b9ad-24fa-44a1-81a8-38b46c463e9c.local 36905 typ host generation 0 ufrag fj4u network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"b6f815d0-156f-450b-bac2-e67602212d19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:3172741562 1 udp 1677729535 141.24.211.56 36905 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag fj4u network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"b6f815d0-156f-450b-bac2-e67602212d19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"b6f815d0-156f-450b-bac2-e67602212d19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"b6f815d0-156f-450b-bac2-e67602212d19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"8b62d88f-396f-4502-9841-49b9795a297e","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b6f815d0-156f-450b-bac2-e67602212d19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"8b62d88f-396f-4502-9841-49b9795a297e","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19'"} device-1 | {"data":{"peerconnection":"e61b6144-c440-4809-8bce-2ccf38bcbadc","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"e61b6144-c440-4809-8bce-2ccf38bcbadc","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/e61b6144-c440-4809-8bce-2ccf38bcbadc' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e61b6144-c440-4809-8bce-2ccf38bcbadc","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"dd3ea99c9b845c159144ffcf8ae8fed4","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"dd3ea99c9b845c159144ffcf8ae8fed4","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/e61b6144-c440-4809-8bce-2ccf38bcbadc"}}},"level":"info","message":"received a callback","requestID":"dd3ea99c9b845c159144ffcf8ae8fed4"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"27026090-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe61b6144-c440-4809-8bce-2ccf38bcbadc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c444b0c3-df43-4970-9cee-9d4e7ce2a27b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240437.534616} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.425814,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/e61b6144-c440-4809-8bce-2ccf38bcbadc","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"27026090-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/e61b6144-c440-4809-8bce-2ccf38bcbadc","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"27026090-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"27026090-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/e61b6144-c440-4809-8bce-2ccf38bcbadc 200 10ms","method":"GET","requestID":"27026090-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/peerconnections/e61b6144-c440-4809-8bce-2ccf38bcbadc"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"dd3ea99c9b845c159144ffcf8ae8fed4","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:53:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.030","http_referrer":"","http_user_agent":"node-fetch","requestID":"dd3ea99c9b845c159144ffcf8ae8fed4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"27060a10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2e0b850e-4b7a-477f-b618-40b4188c0c96","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240437.5583477} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.532304,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"27060a10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"27060a10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"27060a10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/8b62d88f-396f-4502-9841-49b9795a297e/signaling 200 10ms","method":"POST","requestID":"27060a10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/8b62d88f-396f-4502-9841-49b9795a297e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2707ded0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5533a49e-aae2-4648-8f6a-67e9038e3020","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240437.569699} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.39845,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2707ded0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"2707ded0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2707ded0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b6f815d0-156f-450b-bac2-e67602212d19/signaling 200 9ms","method":"POST","requestID":"2707ded0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/b6f815d0-156f-450b-bac2-e67602212d19/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzN30.cbotua8ZNTr2Dy-HX3fxVSoeiolfCIQ-LEhpPxJps7A","level":"info","message":"auth send jwt","requestID":"59e568d1d0eb57f7e735ff9eac67b38a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"59e568d1d0eb57f7e735ff9eac67b38a","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/cd61bd15-b80f-450d-878b-7f4035f11280","requestID":"59e568d1d0eb57f7e735ff9eac67b38a"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.746438,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/cd61bd15-b80f-450d-878b-7f4035f11280","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"59e568d1d0eb57f7e735ff9eac67b38a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/cd61bd15-b80f-450d-878b-7f4035f11280","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240437,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzN30.cbotua8ZNTr2Dy-HX3fxVSoeiolfCIQ-LEhpPxJps7A"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"59e568d1d0eb57f7e735ff9eac67b38a","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/cd61bd15-b80f-450d-878b-7f4035f11280","requestID":"59e568d1d0eb57f7e735ff9eac67b38a"} gateway-1 | {"time_local":"18/Jun/2025:09:53:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/cd61bd15-b80f-450d-878b-7f4035f11280 HTTP/1.1","status": "200","body_bytes_sent":"885","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"59e568d1d0eb57f7e735ff9eac67b38a"} experiment-1 | {"level":"info","message":"GET /experiments/cd61bd15-b80f-450d-878b-7f4035f11280 200 36ms","method":"GET","requestID":"59e568d1d0eb57f7e735ff9eac67b38a","responseTime":36,"status":200,"url":"/experiments/cd61bd15-b80f-450d-878b-7f4035f11280"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzN30.cbotua8ZNTr2Dy-HX3fxVSoeiolfCIQ-LEhpPxJps7A","level":"info","message":"auth send jwt","requestID":"2b2a788f84e06120cfa06c89a357e694"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2b2a788f84e06120cfa06c89a357e694","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/cd61bd15-b80f-450d-878b-7f4035f11280","requestID":"2b2a788f84e06120cfa06c89a357e694"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.742315,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/cd61bd15-b80f-450d-878b-7f4035f11280","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2b2a788f84e06120cfa06c89a357e694","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/cd61bd15-b80f-450d-878b-7f4035f11280","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240437,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzN30.cbotua8ZNTr2Dy-HX3fxVSoeiolfCIQ-LEhpPxJps7A"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2b2a788f84e06120cfa06c89a357e694","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd61bd15-b80f-450d-878b-7f4035f11280"},"level":"info","message":"Attempting to finish experiment","requestID":"2b2a788f84e06120cfa06c89a357e694"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"2714d720-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.708595,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/e61b6144-c440-4809-8bce-2ccf38bcbadc","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2714d720-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/e61b6144-c440-4809-8bce-2ccf38bcbadc","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240437,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzN30.cbotua8ZNTr2Dy-HX3fxVSoeiolfCIQ-LEhpPxJps7A"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2714d720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/e61b6144-c440-4809-8bce-2ccf38bcbadc","device":"b6f815d0-156f-450b-bac2-e67602212d19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"8b62d88f-396f-4502-9841-49b9795a297e","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"8b62d88f-396f-4502-9841-49b9795a297e","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"8b62d88f-396f-4502-9841-49b9795a297e","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/e61b6144-c440-4809-8bce-2ccf38bcbadc' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/e61b6144-c440-4809-8bce-2ccf38bcbadc' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e61b6144-c440-4809-8bce-2ccf38bcbadc","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe61b6144-c440-4809-8bce-2ccf38bcbadc': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe61b6144-c440-4809-8bce-2ccf38bcbadc","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"e88b4e4c-dcf6-462a-b784-319bfa7babdd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240437.6908658} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"48a0d44d-6cbb-42c8-9a4c-7a783d9d1f92","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240437.6911433} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"62f70f8fb7c282fd2e96d5629af7dda2","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"62f70f8fb7c282fd2e96d5629af7dda2","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"2714d720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"18b0e7bebacb56600f67f3c8afb7709d","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"18b0e7bebacb56600f67f3c8afb7709d","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/e61b6144-c440-4809-8bce-2ccf38bcbadc"}}},"level":"info","message":"received a callback","requestID":"62f70f8fb7c282fd2e96d5629af7dda2"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/e61b6144-c440-4809-8bce-2ccf38bcbadc"}}},"level":"info","message":"received a callback","requestID":"18b0e7bebacb56600f67f3c8afb7709d"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"2714d720-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/e61b6144-c440-4809-8bce-2ccf38bcbadc 204 97ms","method":"DELETE","requestID":"2714d720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":97,"status":204,"url":"/peerconnections/e61b6144-c440-4809-8bce-2ccf38bcbadc"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd61bd15-b80f-450d-878b-7f4035f11280"},"level":"info","message":"Successfully finished experiment","requestID":"2b2a788f84e06120cfa06c89a357e694"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"27297090-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b62d88f-396f-4502-9841-49b9795a297e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1e88b628-019c-4d91-bdc5-d02e24201805","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240437.7903593} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.067455,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"27297090-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"27297090-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"27297090-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/8b62d88f-396f-4502-9841-49b9795a297e/signaling 200 11ms","method":"POST","requestID":"27297090-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/8b62d88f-396f-4502-9841-49b9795a297e/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcd61bd15-b80f-450d-878b-7f4035f11280': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcd61bd15-b80f-450d-878b-7f4035f11280","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"b29648b9-16c4-4006-9250-ddb460df1f7e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240437.7974908} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d7a3f4f8-99b2-4cb0-9103-c000ff24b085","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240437.7978296} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"272b9370-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","method":"POST","requestID":"2b2a788f84e06120cfa06c89a357e694","responseTime":17,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6f815d0-156f-450b-bac2-e67602212d19","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"713048ec-3982-49d2-a795-971c1f66c557","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240437.804704} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.566714,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"272b9370-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"272b9370-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"272b9370-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b6f815d0-156f-450b-bac2-e67602212d19/signaling 200 10ms","method":"POST","requestID":"272b9370-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/b6f815d0-156f-450b-bac2-e67602212d19/signaling"} gateway-1 | {"time_local":"18/Jun/2025:09:53:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3005","request_time":"4.049","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"3c9a307682065ccedf3bd20144d3553d"} gateway-1 | {"time_local":"18/Jun/2025:09:53:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/cd61bd15-b80f-450d-878b-7f4035f11280 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.221","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2b2a788f84e06120cfa06c89a357e694"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/cd61bd15-b80f-450d-878b-7f4035f11280","requestID":"2b2a788f84e06120cfa06c89a357e694"} experiment-1 | {"level":"info","message":"DELETE /experiments/cd61bd15-b80f-450d-878b-7f4035f11280 204 215ms","method":"DELETE","requestID":"2b2a788f84e06120cfa06c89a357e694","responseTime":215,"status":204,"url":"/experiments/cd61bd15-b80f-450d-878b-7f4035f11280"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzN30.cbotua8ZNTr2Dy-HX3fxVSoeiolfCIQ-LEhpPxJps7A","level":"info","message":"auth send jwt","requestID":"593b521f142569e14f1325bf1121ca2e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 180ms","method":"POST","requestID":"62f70f8fb7c282fd2e96d5629af7dda2","responseTime":180,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:53:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.184","http_referrer":"","http_user_agent":"node-fetch","requestID":"62f70f8fb7c282fd2e96d5629af7dda2"} authentication-1 | {"level":"info","message":"GET /auth 200 14ms","method":"GET","requestID":"593b521f142569e14f1325bf1121ca2e","responseTime":14,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 180ms","method":"POST","requestID":"18b0e7bebacb56600f67f3c8afb7709d","responseTime":180,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:53:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.184","http_referrer":"","http_user_agent":"node-fetch","requestID":"18b0e7bebacb56600f67f3c8afb7709d"} gateway-1 | {"time_local":"18/Jun/2025:09:53:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3199","request_time":"2.858","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"42a7a763ac37a91d83319f6a223907e0"} device-1 | {"level":"info","message":"postDevices called","requestID":"593b521f142569e14f1325bf1121ca2e"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.845458,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"593b521f142569e14f1325bf1121ca2e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240437,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzN30.cbotua8ZNTr2Dy-HX3fxVSoeiolfCIQ-LEhpPxJps7A"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"593b521f142569e14f1325bf1121ca2e","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/b6f815d0-156f-450b-bac2-e67602212d19' closed"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/8b62d88f-396f-4502-9841-49b9795a297e' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"406766cc-74a7-463b-8d59-6a81b340beff","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240437.9259992} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"593b521f142569e14f1325bf1121ca2e","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6c1a740b-8ce0-43ea-bd27-a0624167d007","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240437.9320426} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"593b521f142569e14f1325bf1121ca2e","responseTime":6,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"7e0ae4df-9931-427f-9582-1380c07dedad","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240437.944341} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"238617cf-98cf-431d-8d96-319972bbe9f9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240437.9444757} authorization-1 | {"level":"info","message":"POST /relations/update 200 39ms","method":"POST","requestID":"593b521f142569e14f1325bf1121ca2e","responseTime":39,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:57.944325366Z"}]},"request_id":"337083cd-971f-476a-a505-be0ba705f6dd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240437.9737005} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"593b521f142569e14f1325bf1121ca2e","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"593b521f142569e14f1325bf1121ca2e"} gateway-1 | {"time_local":"18/Jun/2025:09:53:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.117","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"593b521f142569e14f1325bf1121ca2e"} device-1 | {"level":"info","message":"POST /devices? 201 98ms","method":"POST","requestID":"593b521f142569e14f1325bf1121ca2e","responseTime":98,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzN30.cbotua8ZNTr2Dy-HX3fxVSoeiolfCIQ-LEhpPxJps7A","level":"info","message":"auth send jwt","requestID":"2a9beb34f6392c4939549bd9be325dbc"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2a9beb34f6392c4939549bd9be325dbc","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"2a9beb34f6392c4939549bd9be325dbc"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.681816,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:57Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2a9beb34f6392c4939549bd9be325dbc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240437,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzN30.cbotua8ZNTr2Dy-HX3fxVSoeiolfCIQ-LEhpPxJps7A"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2a9beb34f6392c4939549bd9be325dbc","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d8c87fd7-5021-493b-b46d-33c72253917c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240438.0199409} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2a9beb34f6392c4939549bd9be325dbc","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a6ed86d1-a15c-4f54-bb0a-99957c1a8c84","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240438.0255382} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"2a9beb34f6392c4939549bd9be325dbc","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"8cfe2c3f-259d-4cfd-823f-4090bd22314f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240438.0351596} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1eb1f7d7-84d6-42ea-9307-35460efe0c47","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240438.035414} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"2a9beb34f6392c4939549bd9be325dbc","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:58.035145274Z"}]},"request_id":"580677a2-387a-438c-aa22-5d56a96c58a4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240438.0392642} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2a9beb34f6392c4939549bd9be325dbc","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"2a9beb34f6392c4939549bd9be325dbc"} gateway-1 | {"time_local":"18/Jun/2025:09:53:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.088","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2a9beb34f6392c4939549bd9be325dbc"} device-1 | {"level":"info","message":"POST /devices? 201 84ms","method":"POST","requestID":"2a9beb34f6392c4939549bd9be325dbc","responseTime":84,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzOH0.LeIdVmUmc0Qs4-sJ15eSeYLr7zAi8XgFXBTnqLCJQcs","level":"info","message":"auth send jwt","requestID":"fa244d0ffbf3e269bd17ad56957594e8"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"fa244d0ffbf3e269bd17ad56957594e8","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"fa244d0ffbf3e269bd17ad56957594e8"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:58Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.715779,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:58Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"fa244d0ffbf3e269bd17ad56957594e8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240438,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzOH0.LeIdVmUmc0Qs4-sJ15eSeYLr7zAi8XgFXBTnqLCJQcs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"fa244d0ffbf3e269bd17ad56957594e8","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:57.944325366Z"}]},"request_id":"741470f0-a482-41dc-8caa-434a898f4787","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240438.9971805} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"fa244d0ffbf3e269bd17ad56957594e8","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"641aa5eb-9c24-46a7-856b-b548c4f8f523","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240439.0259879} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"fa244d0ffbf3e269bd17ad56957594e8","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:57.944325366Z"}]},"request_id":"06959e57-e42d-472d-9255-c2071ac73110","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240439.0763843} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"fa244d0ffbf3e269bd17ad56957594e8","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"fa244d0ffbf3e269bd17ad56957594e8"} device-1 | {"level":"info","message":"PATCH /devices/5b688268-c368-454c-a0d3-98ace005d978 200 91ms","method":"PATCH","requestID":"fa244d0ffbf3e269bd17ad56957594e8","responseTime":91,"status":200,"url":"/devices/5b688268-c368-454c-a0d3-98ace005d978"} gateway-1 | {"time_local":"18/Jun/2025:09:53:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/5b688268-c368-454c-a0d3-98ace005d978 HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.096","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"fa244d0ffbf3e269bd17ad56957594e8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzOX0.TDw7uWqWEBBkYLGC9a5AsmgjC4kKJP4cJDOhpUPXgys","level":"info","message":"auth send jwt","requestID":"28504a4820df08b3f40bafb143dab3fa"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"28504a4820df08b3f40bafb143dab3fa","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"28504a4820df08b3f40bafb143dab3fa"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:53:59Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.760011,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:53:59Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"28504a4820df08b3f40bafb143dab3fa","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240439,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQzOX0.TDw7uWqWEBBkYLGC9a5AsmgjC4kKJP4cJDOhpUPXgys"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"28504a4820df08b3f40bafb143dab3fa","responseTime":3,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:53:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/5b688268-c368-454c-a0d3-98ace005d978/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.020","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"28504a4820df08b3f40bafb143dab3fa"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"28504a4820df08b3f40bafb143dab3fa"} device-1 | {"level":"info","message":"POST /devices/5b688268-c368-454c-a0d3-98ace005d978/websocket 200 16ms","method":"POST","requestID":"28504a4820df08b3f40bafb143dab3fa","responseTime":16,"status":200,"url":"/devices/5b688268-c368-454c-a0d3-98ace005d978/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"3bd4b1b9942938de725f098708c564d1","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3bd4b1b9942938de725f098708c564d1","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/0016f3c7-597f-4412-b992-00525c5c256f/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.005","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3bd4b1b9942938de725f098708c564d1"} device-1 | {"level":"info","message":"OPTIONS /devices/0016f3c7-597f-4412-b992-00525c5c256f/websocket 200 1ms","method":"OPTIONS","requestID":"3bd4b1b9942938de725f098708c564d1","responseTime":1,"status":200,"url":"/devices/0016f3c7-597f-4412-b992-00525c5c256f/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI","level":"info","message":"auth send jwt","requestID":"f19b53cda97942c18482f13e94eac3e8"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f19b53cda97942c18482f13e94eac3e8","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"f19b53cda97942c18482f13e94eac3e8"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.20084,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f19b53cda97942c18482f13e94eac3e8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240440,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"f19b53cda97942c18482f13e94eac3e8","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"f19b53cda97942c18482f13e94eac3e8"} device-1 | {"level":"info","message":"POST /devices/0016f3c7-597f-4412-b992-00525c5c256f/websocket 200 25ms","method":"POST","requestID":"f19b53cda97942c18482f13e94eac3e8","responseTime":25,"status":200,"url":"/devices/0016f3c7-597f-4412-b992-00525c5c256f/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:54:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0016f3c7-597f-4412-b992-00525c5c256f/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.032","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f19b53cda97942c18482f13e94eac3e8"} device-1 | {"level":"info","message":"device 'http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"3dfc1cfc2b68692419face5b14e92092","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3dfc1cfc2b68692419face5b14e92092","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/0016f3c7-597f-4412-b992-00525c5c256f? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3dfc1cfc2b68692419face5b14e92092"} device-1 | {"level":"info","message":"OPTIONS /devices/0016f3c7-597f-4412-b992-00525c5c256f? 200 1ms","method":"OPTIONS","requestID":"3dfc1cfc2b68692419face5b14e92092","responseTime":1,"status":200,"url":"/devices/0016f3c7-597f-4412-b992-00525c5c256f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI","level":"info","message":"auth send jwt","requestID":"1a508fc5d3364aaa83819f35706d0f3b"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1a508fc5d3364aaa83819f35706d0f3b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"1a508fc5d3364aaa83819f35706d0f3b"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.631178,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"1a508fc5d3364aaa83819f35706d0f3b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240440,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1a508fc5d3364aaa83819f35706d0f3b","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:58.035145274Z"}]},"request_id":"c786e1b2-07bc-44a7-b519-0e06b97d5bf2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.499972} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1a508fc5d3364aaa83819f35706d0f3b","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6444b8bb-b220-4629-a21d-c75e6e940fd3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.506115} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"1a508fc5d3364aaa83819f35706d0f3b","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:58.035145274Z"}]},"request_id":"93099188-438f-407a-8707-d6ebaddfc6ad","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.5351048} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"1a508fc5d3364aaa83819f35706d0f3b","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"1a508fc5d3364aaa83819f35706d0f3b"} gateway-1 | {"time_local":"18/Jun/2025:09:54:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/0016f3c7-597f-4412-b992-00525c5c256f? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.057","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1a508fc5d3364aaa83819f35706d0f3b"} device-1 | {"level":"info","message":"PATCH /devices/0016f3c7-597f-4412-b992-00525c5c256f? 200 51ms","method":"PATCH","requestID":"1a508fc5d3364aaa83819f35706d0f3b","responseTime":51,"status":200,"url":"/devices/0016f3c7-597f-4412-b992-00525c5c256f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI","level":"info","message":"auth send jwt","requestID":"486fdf505978fcc1f505a83896377498"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"486fdf505978fcc1f505a83896377498","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"486fdf505978fcc1f505a83896377498"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.649579,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"486fdf505978fcc1f505a83896377498","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240440,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"486fdf505978fcc1f505a83896377498","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:57.944325366Z"}]},"request_id":"5165137d-fa3c-47b3-b279-d42a2dd71130","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.5674603} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"486fdf505978fcc1f505a83896377498","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"486fdf505978fcc1f505a83896377498"} gateway-1 | {"time_local":"18/Jun/2025:09:54:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5b688268-c368-454c-a0d3-98ace005d978? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"486fdf505978fcc1f505a83896377498"} device-1 | {"level":"info","message":"GET /devices/5b688268-c368-454c-a0d3-98ace005d978? 200 18ms","method":"GET","requestID":"486fdf505978fcc1f505a83896377498","responseTime":18,"status":200,"url":"/devices/5b688268-c368-454c-a0d3-98ace005d978?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI","level":"info","message":"auth send jwt","requestID":"0a7286718dc5c67db90cbf31e2c293f6"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0a7286718dc5c67db90cbf31e2c293f6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0a7286718dc5c67db90cbf31e2c293f6"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":25.252538,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0a7286718dc5c67db90cbf31e2c293f6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240440,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"0a7286718dc5c67db90cbf31e2c293f6","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:58.035145274Z"}]},"request_id":"a03502a3-325c-41d0-9ca1-6bbf03fdd5de","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.613468} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"0a7286718dc5c67db90cbf31e2c293f6","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0a7286718dc5c67db90cbf31e2c293f6"} gateway-1 | {"time_local":"18/Jun/2025:09:54:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0016f3c7-597f-4412-b992-00525c5c256f? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0a7286718dc5c67db90cbf31e2c293f6"} device-1 | {"level":"info","message":"GET /devices/0016f3c7-597f-4412-b992-00525c5c256f? 200 36ms","method":"GET","requestID":"0a7286718dc5c67db90cbf31e2c293f6","responseTime":36,"status":200,"url":"/devices/0016f3c7-597f-4412-b992-00525c5c256f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI","level":"info","message":"auth send jwt","requestID":"fe807562d9347aa3c06186f01b085e7e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fe807562d9347aa3c06186f01b085e7e","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"fe807562d9347aa3c06186f01b085e7e"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.826199,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"fe807562d9347aa3c06186f01b085e7e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240440,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"fe807562d9347aa3c06186f01b085e7e","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0"},"level":"info","message":"Attempting to run experiment","requestID":"fe807562d9347aa3c06186f01b085e7e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0"},"level":"info","message":"Attempting to book experiment","requestID":"fe807562d9347aa3c06186f01b085e7e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0"},"level":"info","message":"Successfully booked experiment","requestID":"fe807562d9347aa3c06186f01b085e7e"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"28e921f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"28e97010-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.634048,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"28e921f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240440,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"28e921f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.020182,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"28e97010-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240440,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","method":"POST","requestID":"28e97010-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:57.944325366Z"}]},"request_id":"36f6bccd-f506-41aa-bfc1-4f7493ed6634","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.728712} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","method":"POST","requestID":"28e921f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:58.035145274Z"}]},"request_id":"a2859538-26c9-42d7-ba56-789f99a2cd0c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.737319} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"28e97010-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"28e921f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/5b688268-c368-454c-a0d3-98ace005d978? 200 21ms","method":"GET","requestID":"28e921f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":21,"status":200,"url":"/devices/5b688268-c368-454c-a0d3-98ace005d978?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"28e97010-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/0016f3c7-597f-4412-b992-00525c5c256f? 200 21ms","method":"GET","requestID":"28e97010-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":21,"status":200,"url":"/devices/0016f3c7-597f-4412-b992-00525c5c256f?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0"},"level":"info","message":"Setting up experiment","requestID":"fe807562d9347aa3c06186f01b085e7e"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"fe807562d9347aa3c06186f01b085e7e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"fe807562d9347aa3c06186f01b085e7e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0"},"level":"info","message":"Successfully locked booking for experiment","requestID":"fe807562d9347aa3c06186f01b085e7e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0"},"level":"info","message":"Successfully set up experiment","requestID":"fe807562d9347aa3c06186f01b085e7e"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"28f0ea20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"28f13840-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0"},"level":"info","message":"Successfully running experiment","requestID":"fe807562d9347aa3c06186f01b085e7e"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.915631,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"28f0ea20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240440,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"28f0ea20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.635706,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"28f13840-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240440,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"28f13840-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:57.944325366Z"}]},"request_id":"f6b42d2c-c46f-478a-9a7a-74bf54ed8486","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.7819276} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"28f0ea20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:58.035145274Z"}]},"request_id":"a93285af-f213-466d-87ac-e5ee7eb2bd71","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.7829149} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"28f13840-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"28f0ea20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/5b688268-c368-454c-a0d3-98ace005d978? 200 17ms","method":"GET","requestID":"28f0ea20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":17,"status":200,"url":"/devices/5b688268-c368-454c-a0d3-98ace005d978?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F862dea94-c3e6-41fd-9ca0-b539509de8c0#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F862dea94-c3e6-41fd-9ca0-b539509de8c0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"c2cff136-8c87-427f-84f7-0a909e5fb27a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.787349} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e7d67dba-6018-40f6-86fb-98491644abcc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.7875392} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"28f13840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/0016f3c7-597f-4412-b992-00525c5c256f? 200 17ms","method":"GET","requestID":"28f13840-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":17,"status":200,"url":"/devices/0016f3c7-597f-4412-b992-00525c5c256f?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"fe807562d9347aa3c06186f01b085e7e","responseTime":13,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"28f44580-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5bafa287-1681-4315-92cf-77e765a68c89","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.797967} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.564249,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:00Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"fe807562d9347aa3c06186f01b085e7e"} gateway-1 | {"time_local":"18/Jun/2025:09:54:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"812","request_time":"0.180","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fe807562d9347aa3c06186f01b085e7e"} experiment-1 | {"level":"info","message":"POST /experiments? 201 176ms","method":"POST","requestID":"fe807562d9347aa3c06186f01b085e7e","responseTime":176,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"28f44580-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"28f44580-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"28f44580-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/5b688268-c368-454c-a0d3-98ace005d978/signaling 200 11ms","method":"POST","requestID":"28f44580-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/5b688268-c368-454c-a0d3-98ace005d978/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI","level":"info","message":"auth send jwt","requestID":"f728316eaa4e74cceb07875a5f4cfeac"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f728316eaa4e74cceb07875a5f4cfeac","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"28f64150-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"f728316eaa4e74cceb07875a5f4cfeac"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.788035,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f728316eaa4e74cceb07875a5f4cfeac","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240440,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f728316eaa4e74cceb07875a5f4cfeac","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"45d303fd-0aae-4af2-b5b6-18a9c3f7ff48","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.8106523} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.92606,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"28f64150-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"28f64150-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:57.944325366Z"}]},"request_id":"041375ef-fc82-4bf6-9a0d-7ed1fce56b43","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.8155093} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"28f64150-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/0016f3c7-597f-4412-b992-00525c5c256f/signaling 200 11ms","method":"POST","requestID":"28f64150-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/0016f3c7-597f-4412-b992-00525c5c256f/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"f728316eaa4e74cceb07875a5f4cfeac","responseTime":3,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"fe807562d9347aa3c06186f01b085e7e"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"28f83d20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"28f88b40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"f728316eaa4e74cceb07875a5f4cfeac"} gateway-1 | {"time_local":"18/Jun/2025:09:54:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5b688268-c368-454c-a0d3-98ace005d978? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f728316eaa4e74cceb07875a5f4cfeac"} device-1 | {"level":"info","message":"GET /devices/5b688268-c368-454c-a0d3-98ace005d978? 200 15ms","method":"GET","requestID":"f728316eaa4e74cceb07875a5f4cfeac","responseTime":15,"status":200,"url":"/devices/5b688268-c368-454c-a0d3-98ace005d978?"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.943316,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"28f83d20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240440,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"28f83d20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.794216,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"28f88b40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240440,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"28f88b40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:57.944325366Z"}]},"request_id":"b217087b-2406-4f34-9a38-378b33cc0a57","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.8278937} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"28f83d20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:58.035145274Z"}]},"request_id":"f55e1999-3769-413a-a377-e821338ccec1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.8288057} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"28f88b40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"28f83d20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/5b688268-c368-454c-a0d3-98ace005d978? 200 16ms","method":"GET","requestID":"28f83d20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":16,"status":200,"url":"/devices/5b688268-c368-454c-a0d3-98ace005d978?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"28f88b40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/0016f3c7-597f-4412-b992-00525c5c256f? 200 15ms","method":"GET","requestID":"28f88b40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":15,"status":200,"url":"/devices/0016f3c7-597f-4412-b992-00525c5c256f?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0"},"level":"info","message":"Building connection plan","requestID":"fe807562d9347aa3c06186f01b085e7e"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"34edf454-9707-4914-a52c-3457bc2795b9"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"8b5a8528-e13b-4567-8789-85200165a2b1"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"74f10129-b7a8-454d-966d-56921ea56709"}]},"level":"info","message":"Built pairwise service configurations","requestID":"fe807562d9347aa3c06186f01b085e7e"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"fe807562d9347aa3c06186f01b085e7e"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"28fb9880-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:00Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI","level":"info","message":"auth send jwt","requestID":"1b1a8e83699bb00c13c5c36d96e37ef2"} authentication-1 | {"level":"info","message":"GET /auth 200 22ms","method":"GET","requestID":"1b1a8e83699bb00c13c5c36d96e37ef2","responseTime":22,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1b1a8e83699bb00c13c5c36d96e37ef2"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.929243,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"28fb9880-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240440,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","method":"POST","requestID":"28fb9880-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.727748,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"1b1a8e83699bb00c13c5c36d96e37ef2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240440,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0MH0.mmV0dv6QapadOi6JBjrv-xo2bSe1fugSBawCCvRHQeI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1b1a8e83699bb00c13c5c36d96e37ef2","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:53:58.035145274Z"}]},"request_id":"d9d24db3-43d2-4fa8-9144-1d175964c79a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.8570623} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"1b1a8e83699bb00c13c5c36d96e37ef2","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"eaab14c5-d295-4a19-a91f-2733141a81c0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.858757} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5408bedd-b50f-47a6-b5e8-4de363bd6626","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.8590596} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"28fb9880-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1b1a8e83699bb00c13c5c36d96e37ef2"} gateway-1 | {"time_local":"18/Jun/2025:09:54:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0016f3c7-597f-4412-b992-00525c5c256f? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1b1a8e83699bb00c13c5c36d96e37ef2"} device-1 | {"level":"info","message":"GET /devices/0016f3c7-597f-4412-b992-00525c5c256f? 200 17ms","method":"GET","requestID":"1b1a8e83699bb00c13c5c36d96e37ef2","responseTime":17,"status":200,"url":"/devices/0016f3c7-597f-4412-b992-00525c5c256f?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"28fb9880-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"28fb9880-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/c52468cf-eb28-426a-b39d-b1b037320a51'","requestID":"28fb9880-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/c52468cf-eb28-426a-b39d-b1b037320a51'","requestID":"28fb9880-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"28fb9880-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 68ms","method":"POST","requestID":"28fb9880-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":68,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"28fb9880-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"fe807562d9347aa3c06186f01b085e7e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"290e3620-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bb519ed3-13c1-4673-a0db-63055d2b6d34","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240440.9670649} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.526838,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"290e3620-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"290e3620-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"290e3620-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/5b688268-c368-454c-a0d3-98ace005d978/signaling 200 33ms","method":"POST","requestID":"290e3620-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/5b688268-c368-454c-a0d3-98ace005d978/signaling"} device-1 | {"device":"0016f3c7-597f-4412-b992-00525c5c256f","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2913db70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"content":{"canTrickle":true},"device":"0016f3c7-597f-4412-b992-00525c5c256f","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:01Z"} device-1 | {"content":{"sdp":"v=0\r\no=- 2511334238758347406 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:GABC\r\na=ice-pwd:P6YewFt4rZtQyirBYTmCTqi9\r\na=ice-options:trickle\r\na=fingerprint:sha-256 4E:8E:B2:67:70:3B:66:2E:63:C2:83:A0:B8:CE:31:AA:AF:7B:A3:1E:AE:EF:D7:32:5A:02:C6:C3:3C:07:63:A1\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"0016f3c7-597f-4412-b992-00525c5c256f","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ecc211f0-6aed-4f05-b866-0486bbe6949f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240441.0042896} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.034682,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:01Z"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f'"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2913db70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"2913db70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2913db70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/0016f3c7-597f-4412-b992-00525c5c256f/signaling 200 11ms","method":"POST","requestID":"2913db70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/0016f3c7-597f-4412-b992-00525c5c256f/signaling"} device-1 | {"device":"5b688268-c368-454c-a0d3-98ace005d978","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"c52468cf-eb28-426a-b39d-b1b037320a51","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"5b688268-c368-454c-a0d3-98ace005d978","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5b688268-c368-454c-a0d3-98ace005d978","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5b688268-c368-454c-a0d3-98ace005d978","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5b688268-c368-454c-a0d3-98ace005d978","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/c52468cf-eb28-426a-b39d-b1b037320a51' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c52468cf-eb28-426a-b39d-b1b037320a51","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"4ae5f0586a4c16cfd65f0ef3a7a91b9f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"4ae5f0586a4c16cfd65f0ef3a7a91b9f","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/c52468cf-eb28-426a-b39d-b1b037320a51"}}},"level":"info","message":"received a callback","requestID":"4ae5f0586a4c16cfd65f0ef3a7a91b9f"} device-1 | {"content":{"candidate":"candidate:2722233646 1 udp 2113937151 41dd8983-6591-4ba2-9ead-fa1c29e0804b.local 37966 typ host generation 0 ufrag GABC network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"0016f3c7-597f-4412-b992-00525c5c256f","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:644650833 1 udp 1677729535 141.24.211.56 37966 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag GABC network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"0016f3c7-597f-4412-b992-00525c5c256f","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"0016f3c7-597f-4412-b992-00525c5c256f","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"4ae5f0586a4c16cfd65f0ef3a7a91b9f","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"4ae5f0586a4c16cfd65f0ef3a7a91b9f"} device-1 | {"device":"0016f3c7-597f-4412-b992-00525c5c256f","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f'"} device-1 | {"data":{"peerconnection":"c52468cf-eb28-426a-b39d-b1b037320a51","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"5b688268-c368-454c-a0d3-98ace005d978","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5b688268-c368-454c-a0d3-98ace005d978","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"0016f3c7-597f-4412-b992-00525c5c256f","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"data":{"peerconnection":"c52468cf-eb28-426a-b39d-b1b037320a51","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/c52468cf-eb28-426a-b39d-b1b037320a51' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c52468cf-eb28-426a-b39d-b1b037320a51","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"cdfd513f9760825fd42a14038dbec8ac","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"cdfd513f9760825fd42a14038dbec8ac","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/c52468cf-eb28-426a-b39d-b1b037320a51"}}},"level":"info","message":"received a callback","requestID":"cdfd513f9760825fd42a14038dbec8ac"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"2a466800-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc52468cf-eb28-426a-b39d-b1b037320a51","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a2daf1d4-02ce-406a-a87e-d3f46d5c174a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240443.0128853} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.228992,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c52468cf-eb28-426a-b39d-b1b037320a51","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2a466800-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/c52468cf-eb28-426a-b39d-b1b037320a51","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"2a466800-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"2a466800-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/c52468cf-eb28-426a-b39d-b1b037320a51 200 9ms","method":"GET","requestID":"2a466800-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/peerconnections/c52468cf-eb28-426a-b39d-b1b037320a51"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 30ms","method":"POST","requestID":"cdfd513f9760825fd42a14038dbec8ac","responseTime":30,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"cdfd513f9760825fd42a14038dbec8ac"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2a4a86b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"487f5fa7-adc0-4552-841c-9d8c6d64d1eb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240443.038988} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.080507,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2a4a86b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"2a4a86b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2a4a86b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/5b688268-c368-454c-a0d3-98ace005d978/signaling 200 12ms","method":"POST","requestID":"2a4a86b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/5b688268-c368-454c-a0d3-98ace005d978/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2a4cd0a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3f7d01a5-8610-45df-9aa8-c90a36160055","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240443.0545628} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.171503,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2a4cd0a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"2a4cd0a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2a4cd0a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/0016f3c7-597f-4412-b992-00525c5c256f/signaling 200 10ms","method":"POST","requestID":"2a4cd0a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/0016f3c7-597f-4412-b992-00525c5c256f/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0M30.V5X7wT3yXUH8A3BRM3jTIGv-Ni0zid_sm826WmPLMN8","level":"info","message":"auth send jwt","requestID":"38f483a863982034765e80618c62e798"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"38f483a863982034765e80618c62e798","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0","requestID":"38f483a863982034765e80618c62e798"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.680469,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"38f483a863982034765e80618c62e798","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240443,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0M30.V5X7wT3yXUH8A3BRM3jTIGv-Ni0zid_sm826WmPLMN8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"38f483a863982034765e80618c62e798","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0","requestID":"38f483a863982034765e80618c62e798"} gateway-1 | {"time_local":"18/Jun/2025:09:54:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0 HTTP/1.1","status": "200","body_bytes_sent":"885","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"38f483a863982034765e80618c62e798"} experiment-1 | {"level":"info","message":"GET /experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0 200 10ms","method":"GET","requestID":"38f483a863982034765e80618c62e798","responseTime":10,"status":200,"url":"/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0M30.V5X7wT3yXUH8A3BRM3jTIGv-Ni0zid_sm826WmPLMN8","level":"info","message":"auth send jwt","requestID":"4222a56b6dd4399b5f98c66ddfe050de"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4222a56b6dd4399b5f98c66ddfe050de","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0","requestID":"4222a56b6dd4399b5f98c66ddfe050de"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.850715,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4222a56b6dd4399b5f98c66ddfe050de","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240443,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0M30.V5X7wT3yXUH8A3BRM3jTIGv-Ni0zid_sm826WmPLMN8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4222a56b6dd4399b5f98c66ddfe050de","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0"},"level":"info","message":"Attempting to finish experiment","requestID":"4222a56b6dd4399b5f98c66ddfe050de"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"2a5d4b60-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.726708,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c52468cf-eb28-426a-b39d-b1b037320a51","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2a5d4b60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/c52468cf-eb28-426a-b39d-b1b037320a51","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240443,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0M30.V5X7wT3yXUH8A3BRM3jTIGv-Ni0zid_sm826WmPLMN8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2a5d4b60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/c52468cf-eb28-426a-b39d-b1b037320a51","device":"0016f3c7-597f-4412-b992-00525c5c256f","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"5b688268-c368-454c-a0d3-98ace005d978","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5b688268-c368-454c-a0d3-98ace005d978","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5b688268-c368-454c-a0d3-98ace005d978","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/c52468cf-eb28-426a-b39d-b1b037320a51' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/c52468cf-eb28-426a-b39d-b1b037320a51' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c52468cf-eb28-426a-b39d-b1b037320a51","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc52468cf-eb28-426a-b39d-b1b037320a51': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc52468cf-eb28-426a-b39d-b1b037320a51","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"6c148e49-8876-4751-bafe-054a6dcf6ddf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240443.1746066} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"87ea1563-6aa0-46b4-a148-0ebb64fd943c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240443.1748827} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"085de3a201d88e33ceac2713a88abd85","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"085de3a201d88e33ceac2713a88abd85","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 32ms","method":"POST","requestID":"2a5d4b60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c52468cf-eb28-426a-b39d-b1b037320a51"}}},"level":"info","message":"received a callback","requestID":"085de3a201d88e33ceac2713a88abd85"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ba1a89bd0c49909c9a99448b4d602e80","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 25ms","method":"GET","requestID":"ba1a89bd0c49909c9a99448b4d602e80","responseTime":25,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c52468cf-eb28-426a-b39d-b1b037320a51"}}},"level":"info","message":"received a callback","requestID":"ba1a89bd0c49909c9a99448b4d602e80"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"2a5d4b60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/c52468cf-eb28-426a-b39d-b1b037320a51 204 91ms","method":"DELETE","requestID":"2a5d4b60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":91,"status":204,"url":"/peerconnections/c52468cf-eb28-426a-b39d-b1b037320a51"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0"},"level":"info","message":"Successfully finished experiment","requestID":"4222a56b6dd4399b5f98c66ddfe050de"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2a6d9f10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b688268-c368-454c-a0d3-98ace005d978","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"40354915-bdff-459b-9fa0-a8e2b99b0491","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240443.2699106} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.706845,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2a6d9f10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"2a6d9f10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2a6d9f10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/5b688268-c368-454c-a0d3-98ace005d978/signaling 200 35ms","method":"POST","requestID":"2a6d9f10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/5b688268-c368-454c-a0d3-98ace005d978/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F862dea94-c3e6-41fd-9ca0-b539509de8c0': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F862dea94-c3e6-41fd-9ca0-b539509de8c0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"421e8661-1c29-4eb0-bac5-b95543af8aa0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240443.3006868} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"14e94b1d-5265-493d-a7d9-27e4c4cecdda","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240443.3011236} authorization-1 | {"level":"info","message":"POST /relations/update 200 39ms","method":"POST","requestID":"4222a56b6dd4399b5f98c66ddfe050de","responseTime":39,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2a736b70-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0016f3c7-597f-4412-b992-00525c5c256f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dcd6be98-c2c6-4a8b-93ec-5ca24e5e203c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240443.3075001} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.321592,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2a736b70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"2a736b70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2a736b70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/0016f3c7-597f-4412-b992-00525c5c256f/signaling 200 9ms","method":"POST","requestID":"2a736b70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/0016f3c7-597f-4412-b992-00525c5c256f/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0","requestID":"4222a56b6dd4399b5f98c66ddfe050de"} gateway-1 | {"time_local":"18/Jun/2025:09:54:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.277","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4222a56b6dd4399b5f98c66ddfe050de"} experiment-1 | {"level":"info","message":"DELETE /experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0 204 273ms","method":"DELETE","requestID":"4222a56b6dd4399b5f98c66ddfe050de","responseTime":273,"status":204,"url":"/experiments/862dea94-c3e6-41fd-9ca0-b539509de8c0"} gateway-1 | {"time_local":"18/Jun/2025:09:54:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3005","request_time":"4.280","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"2d73afcd5f92f209a9ea29b938cf99f4"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 228ms","method":"POST","requestID":"085de3a201d88e33ceac2713a88abd85","responseTime":228,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.230","http_referrer":"","http_user_agent":"node-fetch","requestID":"085de3a201d88e33ceac2713a88abd85"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 203ms","method":"POST","requestID":"ba1a89bd0c49909c9a99448b4d602e80","responseTime":203,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.230","http_referrer":"","http_user_agent":"node-fetch","requestID":"ba1a89bd0c49909c9a99448b4d602e80"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0M30.V5X7wT3yXUH8A3BRM3jTIGv-Ni0zid_sm826WmPLMN8","level":"info","message":"auth send jwt","requestID":"fe56b0c4b24305dfdd732e2f7ab39421"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"fe56b0c4b24305dfdd732e2f7ab39421","responseTime":3,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3199","request_time":"2.961","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f2751e40fc6bab0f1f346be27d734bee"} device-1 | {"level":"info","message":"postDevices called","requestID":"fe56b0c4b24305dfdd732e2f7ab39421"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.890291,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"fe56b0c4b24305dfdd732e2f7ab39421","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240443,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0M30.V5X7wT3yXUH8A3BRM3jTIGv-Ni0zid_sm826WmPLMN8"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"fe56b0c4b24305dfdd732e2f7ab39421","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/5b688268-c368-454c-a0d3-98ace005d978' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"8ef7e24e-6a5c-4328-b6fd-7c7b628bbaeb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240443.4550364} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"fe56b0c4b24305dfdd732e2f7ab39421","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/0016f3c7-597f-4412-b992-00525c5c256f' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cde56569-5496-4474-9a2b-2498684d9ab7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240443.4605134} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"fe56b0c4b24305dfdd732e2f7ab39421","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"c181abab-f130-4de2-9bdf-f305f5ea6058","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240443.4902718} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"19f9115e-0c7d-4739-ae28-6f3aa4129b3c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240443.490636} authorization-1 | {"level":"info","message":"POST /relations/update 200 34ms","method":"POST","requestID":"fe56b0c4b24305dfdd732e2f7ab39421","responseTime":34,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:03.490258928Z"}]},"request_id":"34c20771-66aa-4422-add6-1ed20091351a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240443.4977863} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"fe56b0c4b24305dfdd732e2f7ab39421","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"fe56b0c4b24305dfdd732e2f7ab39421"} gateway-1 | {"time_local":"18/Jun/2025:09:54:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.098","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fe56b0c4b24305dfdd732e2f7ab39421"} device-1 | {"level":"info","message":"POST /devices? 201 91ms","method":"POST","requestID":"fe56b0c4b24305dfdd732e2f7ab39421","responseTime":91,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0M30.V5X7wT3yXUH8A3BRM3jTIGv-Ni0zid_sm826WmPLMN8","level":"info","message":"auth send jwt","requestID":"499bc8c2e3d1eef177ba05cae825b7d8"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"499bc8c2e3d1eef177ba05cae825b7d8","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"499bc8c2e3d1eef177ba05cae825b7d8"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.754653,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:03Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"499bc8c2e3d1eef177ba05cae825b7d8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240443,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0M30.V5X7wT3yXUH8A3BRM3jTIGv-Ni0zid_sm826WmPLMN8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"499bc8c2e3d1eef177ba05cae825b7d8","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1dd49aa0-fe92-4d10-8954-7feeddc9f0d1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240443.5900679} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"499bc8c2e3d1eef177ba05cae825b7d8","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5aa57356-13df-42be-96c1-ebe563d1d527","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240443.594271} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"499bc8c2e3d1eef177ba05cae825b7d8","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"981ee000-f436-4ac4-a245-685159aabab2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240443.605759} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2452133d-bc9d-4c65-b553-c16dd81127bd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240443.6059084} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"499bc8c2e3d1eef177ba05cae825b7d8","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:03.605748337Z"}]},"request_id":"3f2fac4c-6775-44cd-8d0f-1af375cfade1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240443.633937} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"499bc8c2e3d1eef177ba05cae825b7d8","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"499bc8c2e3d1eef177ba05cae825b7d8"} gateway-1 | {"time_local":"18/Jun/2025:09:54:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.136","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"499bc8c2e3d1eef177ba05cae825b7d8"} device-1 | {"level":"info","message":"POST /devices? 201 132ms","method":"POST","requestID":"499bc8c2e3d1eef177ba05cae825b7d8","responseTime":132,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA","level":"info","message":"auth send jwt","requestID":"4300a62879d1bb7c3792d2bb9b0be4ed"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4300a62879d1bb7c3792d2bb9b0be4ed","responseTime":4,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA","level":"info","message":"auth send jwt","requestID":"48c10176b5d6f090f94b80ca6a8f47db"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"48c10176b5d6f090f94b80ca6a8f47db","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"4300a62879d1bb7c3792d2bb9b0be4ed"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"48c10176b5d6f090f94b80ca6a8f47db"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.701352,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4300a62879d1bb7c3792d2bb9b0be4ed","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240444,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"4300a62879d1bb7c3792d2bb9b0be4ed","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.612642,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"48c10176b5d6f090f94b80ca6a8f47db","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240444,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"48c10176b5d6f090f94b80ca6a8f47db","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:03.490258928Z"}]},"request_id":"0e5e3192-fe32-42f7-8dd1-01d2209bd886","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240444.598615} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:03.605748337Z"}]},"request_id":"f2df2986-02f3-45f8-92c6-bacf61553660","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240444.5994294} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"4300a62879d1bb7c3792d2bb9b0be4ed","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"48c10176b5d6f090f94b80ca6a8f47db","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"32cb83b9-3fde-4fcd-b65f-1074fca4ca92","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240444.6051426} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"4300a62879d1bb7c3792d2bb9b0be4ed","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7dc66bc3-4552-465c-8718-ea7eb1f5359f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240444.6063921} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"48c10176b5d6f090f94b80ca6a8f47db","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:03.605748337Z"}]},"request_id":"e969c4eb-901b-4824-9fdc-9a4aece99811","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240444.609344} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"48c10176b5d6f090f94b80ca6a8f47db","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"48c10176b5d6f090f94b80ca6a8f47db"} device-1 | {"level":"info","message":"PATCH /devices/74c661e1-6791-4598-a637-e90dd9c68162 200 48ms","method":"PATCH","requestID":"48c10176b5d6f090f94b80ca6a8f47db","responseTime":48,"status":200,"url":"/devices/74c661e1-6791-4598-a637-e90dd9c68162"} gateway-1 | {"time_local":"18/Jun/2025:09:54:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/74c661e1-6791-4598-a637-e90dd9c68162 HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.057","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"48c10176b5d6f090f94b80ca6a8f47db"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA","level":"info","message":"auth send jwt","requestID":"f445d8cbbb3ee6ed12509be37eac9b1c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f445d8cbbb3ee6ed12509be37eac9b1c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"f445d8cbbb3ee6ed12509be37eac9b1c"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.760426,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f445d8cbbb3ee6ed12509be37eac9b1c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240444,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA"} authorization-1 | {"level":"info","message":"POST /authorize 200 23ms","method":"POST","requestID":"f445d8cbbb3ee6ed12509be37eac9b1c","responseTime":23,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:03.490258928Z"}]},"request_id":"7107b912-470c-455b-a59b-f788e7f1b635","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240444.6563985} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4300a62879d1bb7c3792d2bb9b0be4ed","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"4300a62879d1bb7c3792d2bb9b0be4ed"} gateway-1 | {"time_local":"18/Jun/2025:09:54:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6 HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.103","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"4300a62879d1bb7c3792d2bb9b0be4ed"} device-1 | {"level":"info","message":"PATCH /devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6 200 97ms","method":"PATCH","requestID":"4300a62879d1bb7c3792d2bb9b0be4ed","responseTime":97,"status":200,"url":"/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA","level":"info","message":"auth send jwt","requestID":"3b8a65822412af0c71d1cbd756315e42"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3b8a65822412af0c71d1cbd756315e42","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"3b8a65822412af0c71d1cbd756315e42"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"f445d8cbbb3ee6ed12509be37eac9b1c"} gateway-1 | {"time_local":"18/Jun/2025:09:54:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/74c661e1-6791-4598-a637-e90dd9c68162/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.051","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"f445d8cbbb3ee6ed12509be37eac9b1c"} device-1 | {"level":"info","message":"POST /devices/74c661e1-6791-4598-a637-e90dd9c68162/websocket 200 48ms","method":"POST","requestID":"f445d8cbbb3ee6ed12509be37eac9b1c","responseTime":48,"status":200,"url":"/devices/74c661e1-6791-4598-a637-e90dd9c68162/websocket"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.834914,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3b8a65822412af0c71d1cbd756315e42","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240444,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3b8a65822412af0c71d1cbd756315e42","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"3b8a65822412af0c71d1cbd756315e42"} gateway-1 | {"time_local":"18/Jun/2025:09:54:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.033","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"3b8a65822412af0c71d1cbd756315e42"} device-1 | {"level":"info","message":"POST /devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6/websocket 200 30ms","method":"POST","requestID":"3b8a65822412af0c71d1cbd756315e42","responseTime":30,"status":200,"url":"/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA","level":"info","message":"auth send jwt","requestID":"89540b98117ee1cffdb4f41007845b6f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"89540b98117ee1cffdb4f41007845b6f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"89540b98117ee1cffdb4f41007845b6f"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.105562,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"89540b98117ee1cffdb4f41007845b6f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240444,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"89540b98117ee1cffdb4f41007845b6f","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:03.490258928Z"}]},"request_id":"2fb6d31f-907e-4211-8067-f9cd2c4e7e7a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240444.7441196} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"89540b98117ee1cffdb4f41007845b6f","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"89540b98117ee1cffdb4f41007845b6f"} device-1 | {"level":"info","message":"GET /devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6? 200 35ms","method":"GET","requestID":"89540b98117ee1cffdb4f41007845b6f","responseTime":35,"status":200,"url":"/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"89540b98117ee1cffdb4f41007845b6f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA","level":"info","message":"auth send jwt","requestID":"993931f3444df338576227d3d72a2fe8"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"993931f3444df338576227d3d72a2fe8","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"993931f3444df338576227d3d72a2fe8"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.826577,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"993931f3444df338576227d3d72a2fe8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240444,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"993931f3444df338576227d3d72a2fe8","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:03.605748337Z"}]},"request_id":"c26ed000-ffa6-4816-b7c0-7b5104dab062","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240444.7591724} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"993931f3444df338576227d3d72a2fe8","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"993931f3444df338576227d3d72a2fe8"} gateway-1 | {"time_local":"18/Jun/2025:09:54:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/74c661e1-6791-4598-a637-e90dd9c68162? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"993931f3444df338576227d3d72a2fe8"} device-1 | {"level":"info","message":"GET /devices/74c661e1-6791-4598-a637-e90dd9c68162? 200 34ms","method":"GET","requestID":"993931f3444df338576227d3d72a2fe8","responseTime":34,"status":200,"url":"/devices/74c661e1-6791-4598-a637-e90dd9c68162?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA","level":"info","message":"auth send jwt","requestID":"8616e8dbe01252a083998c0839d25b4b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8616e8dbe01252a083998c0839d25b4b","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"8616e8dbe01252a083998c0839d25b4b"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.8058,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8616e8dbe01252a083998c0839d25b4b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240444,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8616e8dbe01252a083998c0839d25b4b","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892"},"level":"info","message":"Attempting to run experiment","requestID":"8616e8dbe01252a083998c0839d25b4b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892"},"level":"info","message":"Attempting to book experiment","requestID":"8616e8dbe01252a083998c0839d25b4b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892"},"level":"info","message":"Successfully booked experiment","requestID":"8616e8dbe01252a083998c0839d25b4b"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2b606380-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2b645b20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.647708,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2b606380-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240444,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2b606380-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.596348,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2b645b20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240444,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2b645b20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:03.490258928Z"}]},"request_id":"33212083-9416-4b05-9f40-aa43ba275ce9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240444.8886423} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2b606380-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:03.605748337Z"}]},"request_id":"7234c1b9-1566-46d0-be6b-4febd40b91a7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240444.889477} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2b645b20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2b606380-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6? 200 37ms","method":"GET","requestID":"2b606380-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2b645b20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/74c661e1-6791-4598-a637-e90dd9c68162? 200 12ms","method":"GET","requestID":"2b645b20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/74c661e1-6791-4598-a637-e90dd9c68162?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892"},"level":"info","message":"Setting up experiment","requestID":"8616e8dbe01252a083998c0839d25b4b"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"8616e8dbe01252a083998c0839d25b4b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"8616e8dbe01252a083998c0839d25b4b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892"},"level":"info","message":"Successfully locked booking for experiment","requestID":"8616e8dbe01252a083998c0839d25b4b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892"},"level":"info","message":"Successfully set up experiment","requestID":"8616e8dbe01252a083998c0839d25b4b"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2b6dd100-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2b6e1f20-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892"},"level":"info","message":"Successfully running experiment","requestID":"8616e8dbe01252a083998c0839d25b4b"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.642524,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2b6dd100-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240444,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2b6dd100-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.591162,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2b6e1f20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240444,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"2b6e1f20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:03.490258928Z"}]},"request_id":"5b87f515-47fe-4ac2-828f-b9ce473981b6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240444.9613917} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:03.605748337Z"}]},"request_id":"ba6764b6-475e-4100-af96-4d06cf887d97","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240444.9615302} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2b6e1f20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"2b6dd100-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2b6e1f20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/74c661e1-6791-4598-a637-e90dd9c68162? 200 20ms","method":"GET","requestID":"2b6e1f20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":20,"status":200,"url":"/devices/74c661e1-6791-4598-a637-e90dd9c68162?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2b6dd100-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6? 200 23ms","method":"GET","requestID":"2b6dd100-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":23,"status":200,"url":"/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2b732830-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ad4a480f-d707-44a3-8c7f-48b1fa29157f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240444.9838989} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.455565,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2b732830-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"2b732830-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fed062159-fb52-4525-a086-7b60867d9892#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fed062159-fb52-4525-a086-7b60867d9892","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"c93807d6-01e6-4561-bded-ce4562aaf0ef","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240444.9858} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"37febfae-dba5-4856-8c62-ee4f07c3b605","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240444.9860976} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"8616e8dbe01252a083998c0839d25b4b","responseTime":38,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2b732830-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6/signaling 200 11ms","method":"POST","requestID":"2b732830-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2b754b10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:04Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"8616e8dbe01252a083998c0839d25b4b"} gateway-1 | {"time_local":"18/Jun/2025:09:54:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"816","request_time":"0.209","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8616e8dbe01252a083998c0839d25b4b"} experiment-1 | {"level":"info","message":"POST /experiments? 201 205ms","method":"POST","requestID":"8616e8dbe01252a083998c0839d25b4b","responseTime":205,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"80b79b32-3a71-488f-a312-62ae641593ac","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240444.99793} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.68325,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2b754b10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"2b754b10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NX0.TDqo3TBNoO1j81jU-uWiWvQXxrHcNFrtTpHdsaWF8Gk","level":"info","message":"auth send jwt","requestID":"0cf1a5521f0d63f773f8a10b142c56ff"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0cf1a5521f0d63f773f8a10b142c56ff","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0cf1a5521f0d63f773f8a10b142c56ff"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2b754b10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/74c661e1-6791-4598-a637-e90dd9c68162/signaling 200 11ms","method":"POST","requestID":"2b754b10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/74c661e1-6791-4598-a637-e90dd9c68162/signaling"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:05Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"8616e8dbe01252a083998c0839d25b4b"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.721223,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:05Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2b7746e0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0cf1a5521f0d63f773f8a10b142c56ff","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240445,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NX0.TDqo3TBNoO1j81jU-uWiWvQXxrHcNFrtTpHdsaWF8Gk"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0cf1a5521f0d63f773f8a10b142c56ff","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2b779500-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Received request.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:05Z"} authorization-1 | {"client_addr":"127.0.0.1:46776","level":"info","msg":"Sent response.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.900941,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:05Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2b7746e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240444,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2b7746e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.581753,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2b779500-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240444,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2b779500-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:03.490258928Z"}]},"request_id":"22465707-6a04-44b9-ad31-d4c9e289abf8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240445.0149736} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:03.490258928Z"}]},"request_id":"ba76ed60-f727-4467-be37-69d3d9f75f65","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240445.015968} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"0cf1a5521f0d63f773f8a10b142c56ff","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"2b7746e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:03.605748337Z"}]},"request_id":"e15cc0d9-2628-409b-ad9d-0b327242c323","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240445.0168202} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0cf1a5521f0d63f773f8a10b142c56ff"} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","method":"POST","requestID":"2b779500-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/relations/query"} gateway-1 | {"time_local":"18/Jun/2025:09:54:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0cf1a5521f0d63f773f8a10b142c56ff"} device-1 | {"level":"info","message":"GET /devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6? 200 20ms","method":"GET","requestID":"0cf1a5521f0d63f773f8a10b142c56ff","responseTime":20,"status":200,"url":"/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2b7746e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6? 200 17ms","method":"GET","requestID":"2b7746e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":17,"status":200,"url":"/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NX0.TDqo3TBNoO1j81jU-uWiWvQXxrHcNFrtTpHdsaWF8Gk","level":"info","message":"auth send jwt","requestID":"c715c48b0530d557f1e6089d78944dbe"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c715c48b0530d557f1e6089d78944dbe","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2b779500-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/74c661e1-6791-4598-a637-e90dd9c68162? 200 20ms","method":"GET","requestID":"2b779500-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":20,"status":200,"url":"/devices/74c661e1-6791-4598-a637-e90dd9c68162?"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"c715c48b0530d557f1e6089d78944dbe"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892"},"level":"info","message":"Building connection plan","requestID":"8616e8dbe01252a083998c0839d25b4b"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"33e0eb61-6cee-4e29-b61b-d8116d1027b9"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"5af8524d-a201-45e9-b687-ed3b631b411d"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"12d63fa1-fa22-4509-bec3-fcb8709c8f45"}]},"level":"info","message":"Built pairwise service configurations","requestID":"8616e8dbe01252a083998c0839d25b4b"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"8616e8dbe01252a083998c0839d25b4b"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:05Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.658932,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:05Z"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"2b7b1770-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c715c48b0530d557f1e6089d78944dbe","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240445,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NX0.TDqo3TBNoO1j81jU-uWiWvQXxrHcNFrtTpHdsaWF8Gk"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c715c48b0530d557f1e6089d78944dbe","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:05Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.634722,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2b7b1770-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240444,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0NH0.Z6KVMHns2UQbVEf-sDdp2AV7qUOH7NeYemeEOhchppA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2b7b1770-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:03.605748337Z"}]},"request_id":"61dd3eba-aec1-41e1-b8de-1f5a56336ca9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240445.0356457} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c715c48b0530d557f1e6089d78944dbe","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"c715c48b0530d557f1e6089d78944dbe"} device-1 | {"level":"info","message":"GET /devices/74c661e1-6791-4598-a637-e90dd9c68162? 200 12ms","method":"GET","requestID":"c715c48b0530d557f1e6089d78944dbe","responseTime":12,"status":200,"url":"/devices/74c661e1-6791-4598-a637-e90dd9c68162?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/74c661e1-6791-4598-a637-e90dd9c68162? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c715c48b0530d557f1e6089d78944dbe"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"63f045d1-aa91-446b-8f88-14c9ca58646d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240445.0462444} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8830a565-39a7-4379-bf98-aa4812626af5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240445.0464563} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"2b7b1770-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"2b7b1770-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"2b7b1770-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/09a94b47-507a-4f8a-b6dd-9d7c2e3e9503'","requestID":"2b7b1770-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/09a94b47-507a-4f8a-b6dd-9d7c2e3e9503'","requestID":"2b7b1770-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"2b7b1770-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 55ms","method":"POST","requestID":"2b7b1770-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":55,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"2b7b1770-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"8616e8dbe01252a083998c0839d25b4b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2b8b6b20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:05Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9d0c7ee4-2fda-46f3-a68b-035c2954dca5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240445.1435487} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.139417,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2b8b6b20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"2b8b6b20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2b8b6b20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6/signaling 200 34ms","method":"POST","requestID":"2b8b6b20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2b90e960-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:05Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f59fb423-e0a0-47bd-8539-b6d9b047cf3b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240445.1796784} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.19818,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2b90e960-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"2b90e960-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2b90e960-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/74c661e1-6791-4598-a637-e90dd9c68162/signaling 200 11ms","method":"POST","requestID":"2b90e960-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/74c661e1-6791-4598-a637-e90dd9c68162/signaling"} device-1 | {"device":"b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"09a94b47-507a-4f8a-b6dd-9d7c2e3e9503","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"74c661e1-6791-4598-a637-e90dd9c68162","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"09a94b47-507a-4f8a-b6dd-9d7c2e3e9503","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"74c661e1-6791-4598-a637-e90dd9c68162","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"74c661e1-6791-4598-a637-e90dd9c68162","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"74c661e1-6791-4598-a637-e90dd9c68162","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"74c661e1-6791-4598-a637-e90dd9c68162","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/09a94b47-507a-4f8a-b6dd-9d7c2e3e9503' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"09a94b47-507a-4f8a-b6dd-9d7c2e3e9503","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"874357acbb2afaa414556baf273f8c16","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"874357acbb2afaa414556baf273f8c16","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/09a94b47-507a-4f8a-b6dd-9d7c2e3e9503"}}},"level":"info","message":"received a callback","requestID":"874357acbb2afaa414556baf273f8c16"} device-1 | {"device":"b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"874357acbb2afaa414556baf273f8c16","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch","requestID":"874357acbb2afaa414556baf273f8c16"} device-1 | {"device":"74c661e1-6791-4598-a637-e90dd9c68162","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"09a94b47-507a-4f8a-b6dd-9d7c2e3e9503","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"74c661e1-6791-4598-a637-e90dd9c68162","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"09a94b47-507a-4f8a-b6dd-9d7c2e3e9503","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/09a94b47-507a-4f8a-b6dd-9d7c2e3e9503' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"09a94b47-507a-4f8a-b6dd-9d7c2e3e9503","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"66cbd79fc281611c53b03fcf66af6442","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"66cbd79fc281611c53b03fcf66af6442","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/09a94b47-507a-4f8a-b6dd-9d7c2e3e9503"}}},"level":"info","message":"received a callback","requestID":"66cbd79fc281611c53b03fcf66af6442"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"2ccc4f90-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F09a94b47-507a-4f8a-b6dd-9d7c2e3e9503","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0a03f607-f2a3-4219-ad92-01cce058c7ef","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240447.2458978} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.699333,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/09a94b47-507a-4f8a-b6dd-9d7c2e3e9503","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2ccc4f90-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/09a94b47-507a-4f8a-b6dd-9d7c2e3e9503","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"2ccc4f90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0N30.QjBkQCC7KH6n4jVgEnnRDEF0jB-hy9BiPsNMqYrSmMo","level":"info","message":"auth send jwt","requestID":"159887157bc7f7fc754a0f75596f7c64"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"159887157bc7f7fc754a0f75596f7c64","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/ed062159-fb52-4525-a086-7b60867d9892","requestID":"159887157bc7f7fc754a0f75596f7c64"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"2ccc4f90-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/09a94b47-507a-4f8a-b6dd-9d7c2e3e9503 200 46ms","method":"GET","requestID":"2ccc4f90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":46,"status":200,"url":"/peerconnections/09a94b47-507a-4f8a-b6dd-9d7c2e3e9503"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.779964,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"159887157bc7f7fc754a0f75596f7c64","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240447,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0N30.QjBkQCC7KH6n4jVgEnnRDEF0jB-hy9BiPsNMqYrSmMo"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"159887157bc7f7fc754a0f75596f7c64","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/ed062159-fb52-4525-a086-7b60867d9892","requestID":"159887157bc7f7fc754a0f75596f7c64"} experiment-1 | {"level":"info","message":"GET /experiments/ed062159-fb52-4525-a086-7b60867d9892 200 15ms","method":"GET","requestID":"159887157bc7f7fc754a0f75596f7c64","responseTime":15,"status":200,"url":"/experiments/ed062159-fb52-4525-a086-7b60867d9892"} gateway-1 | {"time_local":"18/Jun/2025:09:54:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/ed062159-fb52-4525-a086-7b60867d9892 HTTP/1.1","status": "200","body_bytes_sent":"887","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"159887157bc7f7fc754a0f75596f7c64"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 117ms","method":"POST","requestID":"66cbd79fc281611c53b03fcf66af6442","responseTime":117,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.119","http_referrer":"","http_user_agent":"node-fetch","requestID":"66cbd79fc281611c53b03fcf66af6442"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2cdd8da0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"27360620-e554-4291-9504-994c5ff8bdb3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240447.3786068} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":22.818013,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2cdd8da0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 25ms","method":"POST","requestID":"2cdd8da0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":25,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2cdd8da0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/74c661e1-6791-4598-a637-e90dd9c68162/signaling 200 29ms","method":"POST","requestID":"2cdd8da0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/devices/74c661e1-6791-4598-a637-e90dd9c68162/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2ce26fa0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"907ee985-ff42-427e-b43f-ad5b403dac86","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240447.3901505} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.335118,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2ce26fa0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"2ce26fa0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2ce26fa0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6/signaling 200 8ms","method":"POST","requestID":"2ce26fa0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0N30.QjBkQCC7KH6n4jVgEnnRDEF0jB-hy9BiPsNMqYrSmMo","level":"info","message":"auth send jwt","requestID":"0dd0b2a398cf715ae2b688dd31f986cc"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0dd0b2a398cf715ae2b688dd31f986cc","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/ed062159-fb52-4525-a086-7b60867d9892","requestID":"0dd0b2a398cf715ae2b688dd31f986cc"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.657448,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0dd0b2a398cf715ae2b688dd31f986cc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240447,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0N30.QjBkQCC7KH6n4jVgEnnRDEF0jB-hy9BiPsNMqYrSmMo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0dd0b2a398cf715ae2b688dd31f986cc","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/ed062159-fb52-4525-a086-7b60867d9892","requestID":"0dd0b2a398cf715ae2b688dd31f986cc"} gateway-1 | {"time_local":"18/Jun/2025:09:54:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/ed062159-fb52-4525-a086-7b60867d9892 HTTP/1.1","status": "200","body_bytes_sent":"889","request_time":"0.033","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0dd0b2a398cf715ae2b688dd31f986cc"} experiment-1 | {"level":"info","message":"GET /experiments/ed062159-fb52-4525-a086-7b60867d9892 200 10ms","method":"GET","requestID":"0dd0b2a398cf715ae2b688dd31f986cc","responseTime":10,"status":200,"url":"/experiments/ed062159-fb52-4525-a086-7b60867d9892"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0N30.QjBkQCC7KH6n4jVgEnnRDEF0jB-hy9BiPsNMqYrSmMo","level":"info","message":"auth send jwt","requestID":"18182cb88d8626d99090e6ec1e26ac37"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"18182cb88d8626d99090e6ec1e26ac37","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/ed062159-fb52-4525-a086-7b60867d9892","requestID":"18182cb88d8626d99090e6ec1e26ac37"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.666064,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"18182cb88d8626d99090e6ec1e26ac37","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240447,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0N30.QjBkQCC7KH6n4jVgEnnRDEF0jB-hy9BiPsNMqYrSmMo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"18182cb88d8626d99090e6ec1e26ac37","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892"},"level":"info","message":"Attempting to finish experiment","requestID":"18182cb88d8626d99090e6ec1e26ac37"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"2cec5ab0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.702851,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/09a94b47-507a-4f8a-b6dd-9d7c2e3e9503","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2cec5ab0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/09a94b47-507a-4f8a-b6dd-9d7c2e3e9503","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240447,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0N30.QjBkQCC7KH6n4jVgEnnRDEF0jB-hy9BiPsNMqYrSmMo"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"2cec5ab0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/authorize"} device-1 | {"device":"74c661e1-6791-4598-a637-e90dd9c68162","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"74c661e1-6791-4598-a637-e90dd9c68162","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"74c661e1-6791-4598-a637-e90dd9c68162","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/09a94b47-507a-4f8a-b6dd-9d7c2e3e9503' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/09a94b47-507a-4f8a-b6dd-9d7c2e3e9503' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"09a94b47-507a-4f8a-b6dd-9d7c2e3e9503","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d2ec44782bb2c7250fb40f7fd14c18e1","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F09a94b47-507a-4f8a-b6dd-9d7c2e3e9503': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F09a94b47-507a-4f8a-b6dd-9d7c2e3e9503","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"6ddddb6d-374f-46f4-974a-c966f644170c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240447.4902208} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d2ec44782bb2c7250fb40f7fd14c18e1","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1a5680e9-29df-4b1e-a713-b292ef64b584","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240447.4905493} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"5f817098566bd1baa022c93e9bf95564","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/09a94b47-507a-4f8a-b6dd-9d7c2e3e9503"}}},"level":"info","message":"received a callback","requestID":"d2ec44782bb2c7250fb40f7fd14c18e1"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5f817098566bd1baa022c93e9bf95564","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","method":"POST","requestID":"2cec5ab0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/09a94b47-507a-4f8a-b6dd-9d7c2e3e9503"}}},"level":"info","message":"received a callback","requestID":"5f817098566bd1baa022c93e9bf95564"} device-1 | {"data":{"peerconnection":"09a94b47-507a-4f8a-b6dd-9d7c2e3e9503","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"2cec5ab0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/09a94b47-507a-4f8a-b6dd-9d7c2e3e9503 204 82ms","method":"DELETE","requestID":"2cec5ab0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":82,"status":204,"url":"/peerconnections/09a94b47-507a-4f8a-b6dd-9d7c2e3e9503"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2cfb4ed0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ed062159-fb52-4525-a086-7b60867d9892"},"level":"info","message":"Successfully finished experiment","requestID":"18182cb88d8626d99090e6ec1e26ac37"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:07Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2cfb4ed0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/74c661e1-6791-4598-a637-e90dd9c68162/signaling 200 9ms","method":"POST","requestID":"2cfb4ed0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/74c661e1-6791-4598-a637-e90dd9c68162/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2cfcfc80-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74c661e1-6791-4598-a637-e90dd9c68162","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"49f4c2f5-945a-472b-b0e6-b32406df2303","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240447.5532892} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.357037,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2cfb4ed0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"2cfb4ed0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fed062159-fb52-4525-a086-7b60867d9892': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fed062159-fb52-4525-a086-7b60867d9892","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"64999493-c56d-41cf-918c-2b7911abf54a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240447.5645015} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8ff1c59-2875-4129-9fd1-5587d3d7b4f6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c7e9036d-f23f-4c26-866b-cd9213bf2f2d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240447.564913} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"532ccce2-737c-40a5-9691-ac031ef6fd14","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240447.5648816} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","method":"POST","requestID":"18182cb88d8626d99090e6ec1e26ac37","responseTime":19,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.096933,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2cfcfc80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"2cfcfc80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2cfcfc80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6/signaling 200 10ms","method":"POST","requestID":"2cfcfc80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/ed062159-fb52-4525-a086-7b60867d9892","requestID":"18182cb88d8626d99090e6ec1e26ac37"} gateway-1 | {"time_local":"18/Jun/2025:09:54:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/ed062159-fb52-4525-a086-7b60867d9892 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.176","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"18182cb88d8626d99090e6ec1e26ac37"} experiment-1 | {"level":"info","message":"DELETE /experiments/ed062159-fb52-4525-a086-7b60867d9892 204 173ms","method":"DELETE","requestID":"18182cb88d8626d99090e6ec1e26ac37","responseTime":173,"status":204,"url":"/experiments/ed062159-fb52-4525-a086-7b60867d9892"} gateway-1 | {"time_local":"18/Jun/2025:09:54:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3204","request_time":"2.921","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"fb3162bb8b47aba629d944929c5665be"} gateway-1 | {"time_local":"18/Jun/2025:09:54:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3204","request_time":"2.949","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"4a5f6db52d3b2aa1011c21fa149363a7"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/b8ff1c59-2875-4129-9fd1-5587d3d7b4f6' closed"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 132ms","method":"POST","requestID":"d2ec44782bb2c7250fb40f7fd14c18e1","responseTime":132,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.134","http_referrer":"","http_user_agent":"node-fetch","requestID":"d2ec44782bb2c7250fb40f7fd14c18e1"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 131ms","method":"POST","requestID":"5f817098566bd1baa022c93e9bf95564","responseTime":131,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.135","http_referrer":"","http_user_agent":"node-fetch","requestID":"5f817098566bd1baa022c93e9bf95564"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/74c661e1-6791-4598-a637-e90dd9c68162' closed"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0N30.QjBkQCC7KH6n4jVgEnnRDEF0jB-hy9BiPsNMqYrSmMo","level":"info","message":"auth send jwt","requestID":"870800f301cea458368a2567f914d454"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"870800f301cea458368a2567f914d454","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"870800f301cea458368a2567f914d454"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":2.768812,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"870800f301cea458368a2567f914d454","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240447,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0N30.QjBkQCC7KH6n4jVgEnnRDEF0jB-hy9BiPsNMqYrSmMo"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"870800f301cea458368a2567f914d454","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ff7f964d-025b-47c1-9672-d3d5c69bf5d2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240447.6646962} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"870800f301cea458368a2567f914d454","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"96c9038e-637c-4de5-b169-6ca3c147abe8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240447.6701303} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"870800f301cea458368a2567f914d454","responseTime":5,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"03a3f3e0-2c5a-475b-abf5-5d7a539a9798","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240447.6807964} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8eecc6e4-70f6-41cf-8224-fd1799df02d6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240447.680985} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"870800f301cea458368a2567f914d454","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:07.680779070Z"}]},"request_id":"90bdd63b-ea4f-426b-ad12-832eabfb5e88","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240447.686532} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"870800f301cea458368a2567f914d454","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"870800f301cea458368a2567f914d454"} gateway-1 | {"time_local":"18/Jun/2025:09:54:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.099","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"870800f301cea458368a2567f914d454"} device-1 | {"level":"info","message":"POST /devices? 201 79ms","method":"POST","requestID":"870800f301cea458368a2567f914d454","responseTime":79,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0N30.QjBkQCC7KH6n4jVgEnnRDEF0jB-hy9BiPsNMqYrSmMo","level":"info","message":"auth send jwt","requestID":"e32b1b2a53e4e9d929b86911757ddd0a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e32b1b2a53e4e9d929b86911757ddd0a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"e32b1b2a53e4e9d929b86911757ddd0a"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.992736,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e32b1b2a53e4e9d929b86911757ddd0a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240447,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ0N30.QjBkQCC7KH6n4jVgEnnRDEF0jB-hy9BiPsNMqYrSmMo"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"e32b1b2a53e4e9d929b86911757ddd0a","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9456973a-7a0b-430a-8a67-b1182dd3bfbe","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240447.7716513} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"e32b1b2a53e4e9d929b86911757ddd0a","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"426abcb5-4032-41bb-97ea-56e9ec33a124","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240447.777199} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"e32b1b2a53e4e9d929b86911757ddd0a","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"23c1113d-461b-4d8b-80bc-880b21492f02","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240447.7875383} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4aa352ad-0714-4c4b-8882-d243c4b60ddc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240447.7877786} authorization-1 | {"level":"info","message":"POST /relations/update 200 34ms","method":"POST","requestID":"e32b1b2a53e4e9d929b86911757ddd0a","responseTime":34,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:07.787524726Z"}]},"request_id":"bb430361-3abb-4a6a-b9dd-47844df3d713","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240447.8132896} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e32b1b2a53e4e9d929b86911757ddd0a","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"e32b1b2a53e4e9d929b86911757ddd0a"} gateway-1 | {"time_local":"18/Jun/2025:09:54:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.096","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e32b1b2a53e4e9d929b86911757ddd0a"} device-1 | {"level":"info","message":"POST /devices? 201 92ms","method":"POST","requestID":"e32b1b2a53e4e9d929b86911757ddd0a","responseTime":92,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b9dc03c53f022e36222b70f45fec9122","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b9dc03c53f022e36222b70f45fec9122","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.006","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b9dc03c53f022e36222b70f45fec9122"} device-1 | {"level":"info","message":"OPTIONS /devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a/websocket 200 1ms","method":"OPTIONS","requestID":"b9dc03c53f022e36222b70f45fec9122","responseTime":1,"status":200,"url":"/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM","level":"info","message":"auth send jwt","requestID":"e392e00ef18db485e74f4daf2ace0447"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"e392e00ef18db485e74f4daf2ace0447","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"e392e00ef18db485e74f4daf2ace0447"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.661018,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e392e00ef18db485e74f4daf2ace0447","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240450,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"e392e00ef18db485e74f4daf2ace0447","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0ba83fb537c2743ddab06f63a6f97313","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"0ba83fb537c2743ddab06f63a6f97313","responseTime":0,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/60c0fb3b-4217-4449-ab9c-30dc622688c7/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0ba83fb537c2743ddab06f63a6f97313"} device-1 | {"level":"info","message":"OPTIONS /devices/60c0fb3b-4217-4449-ab9c-30dc622688c7/websocket 200 1ms","method":"OPTIONS","requestID":"0ba83fb537c2743ddab06f63a6f97313","responseTime":1,"status":200,"url":"/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM","level":"info","message":"auth send jwt","requestID":"779fadfdc6665b30f79cfdff088776cf"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"779fadfdc6665b30f79cfdff088776cf","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"779fadfdc6665b30f79cfdff088776cf"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.691675,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"779fadfdc6665b30f79cfdff088776cf","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240450,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"779fadfdc6665b30f79cfdff088776cf","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"e392e00ef18db485e74f4daf2ace0447"} device-1 | {"level":"info","message":"POST /devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a/websocket 200 36ms","method":"POST","requestID":"e392e00ef18db485e74f4daf2ace0447","responseTime":36,"status":200,"url":"/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:54:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.046","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e392e00ef18db485e74f4daf2ace0447"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"779fadfdc6665b30f79cfdff088776cf"} device-1 | {"level":"info","message":"POST /devices/60c0fb3b-4217-4449-ab9c-30dc622688c7/websocket 200 24ms","method":"POST","requestID":"779fadfdc6665b30f79cfdff088776cf","responseTime":24,"status":200,"url":"/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:54:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/60c0fb3b-4217-4449-ab9c-30dc622688c7/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.028","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"779fadfdc6665b30f79cfdff088776cf"} device-1 | {"level":"info","message":"device 'http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"54204480247ee43d8a9e6985544fd15e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"54204480247ee43d8a9e6985544fd15e","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a? 200 1ms","method":"OPTIONS","requestID":"54204480247ee43d8a9e6985544fd15e","responseTime":1,"status":200,"url":"/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"54204480247ee43d8a9e6985544fd15e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM","level":"info","message":"auth send jwt","requestID":"cce8bd04c8f7b6dd900d7fb88a996f21"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cce8bd04c8f7b6dd900d7fb88a996f21","responseTime":3,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"1ddc338bb0ad3092b8840c0689a7e8d6","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"cce8bd04c8f7b6dd900d7fb88a996f21"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1ddc338bb0ad3092b8840c0689a7e8d6","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/60c0fb3b-4217-4449-ab9c-30dc622688c7? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1ddc338bb0ad3092b8840c0689a7e8d6"} device-1 | {"level":"info","message":"OPTIONS /devices/60c0fb3b-4217-4449-ab9c-30dc622688c7? 200 1ms","method":"OPTIONS","requestID":"1ddc338bb0ad3092b8840c0689a7e8d6","responseTime":1,"status":200,"url":"/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7?"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.662816,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"cce8bd04c8f7b6dd900d7fb88a996f21","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240450,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"cce8bd04c8f7b6dd900d7fb88a996f21","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM","level":"info","message":"auth send jwt","requestID":"170e64283b97210038c0985576357fb5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"170e64283b97210038c0985576357fb5","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"170e64283b97210038c0985576357fb5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:07.787524726Z"}]},"request_id":"a4a10484-7816-4ca5-a2d1-eb69a5392c98","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.2710419} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"cce8bd04c8f7b6dd900d7fb88a996f21","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.658604,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"170e64283b97210038c0985576357fb5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240450,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"170e64283b97210038c0985576357fb5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0a06bd95-5f9d-4dff-9307-e7a1276926c9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.276346} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"cce8bd04c8f7b6dd900d7fb88a996f21","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:07.680779070Z"}]},"request_id":"f32f95ec-6249-4fe5-8967-9c6bb7b6d508","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.2794712} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"170e64283b97210038c0985576357fb5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8c5a9269-9f63-421c-be41-b0521586fb58","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.3080728} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"170e64283b97210038c0985576357fb5","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:07.787524726Z"}]},"request_id":"d754d1e6-bc89-4917-81a5-4d8e89c40c45","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.3114088} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"cce8bd04c8f7b6dd900d7fb88a996f21","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"cce8bd04c8f7b6dd900d7fb88a996f21"} gateway-1 | {"time_local":"18/Jun/2025:09:54:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.057","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"cce8bd04c8f7b6dd900d7fb88a996f21"} device-1 | {"level":"info","message":"PATCH /devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a? 200 52ms","method":"PATCH","requestID":"cce8bd04c8f7b6dd900d7fb88a996f21","responseTime":52,"status":200,"url":"/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:07.680779070Z"}]},"request_id":"8ba8ed6f-6230-4f5a-a2a9-1f84e8057b0c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.321396} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"170e64283b97210038c0985576357fb5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"170e64283b97210038c0985576357fb5"} gateway-1 | {"time_local":"18/Jun/2025:09:54:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/60c0fb3b-4217-4449-ab9c-30dc622688c7? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.059","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"170e64283b97210038c0985576357fb5"} device-1 | {"level":"info","message":"PATCH /devices/60c0fb3b-4217-4449-ab9c-30dc622688c7? 200 54ms","method":"PATCH","requestID":"170e64283b97210038c0985576357fb5","responseTime":54,"status":200,"url":"/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM","level":"info","message":"auth send jwt","requestID":"cba0ca049917322af266a72626f45a33"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cba0ca049917322af266a72626f45a33","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"cba0ca049917322af266a72626f45a33"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.901229,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"cba0ca049917322af266a72626f45a33","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240450,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM"} authorization-1 | {"level":"info","message":"POST /authorize 200 24ms","method":"POST","requestID":"cba0ca049917322af266a72626f45a33","responseTime":24,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:07.680779070Z"}]},"request_id":"acc441fb-25c2-4bce-ac73-25191739ac1a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.359009} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"cba0ca049917322af266a72626f45a33","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"cba0ca049917322af266a72626f45a33"} device-1 | {"level":"info","message":"GET /devices/60c0fb3b-4217-4449-ab9c-30dc622688c7? 200 31ms","method":"GET","requestID":"cba0ca049917322af266a72626f45a33","responseTime":31,"status":200,"url":"/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/60c0fb3b-4217-4449-ab9c-30dc622688c7? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.035","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cba0ca049917322af266a72626f45a33"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM","level":"info","message":"auth send jwt","requestID":"fd36f6392c0356157fcf33ccac8ca3c4"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fd36f6392c0356157fcf33ccac8ca3c4","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"fd36f6392c0356157fcf33ccac8ca3c4"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.703523,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"fd36f6392c0356157fcf33ccac8ca3c4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240450,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"fd36f6392c0356157fcf33ccac8ca3c4","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:07.787524726Z"}]},"request_id":"13b5c17c-34ff-44f1-bb1d-3ec0b9ba2c8c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.3739278} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"fd36f6392c0356157fcf33ccac8ca3c4","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"fd36f6392c0356157fcf33ccac8ca3c4"} device-1 | {"level":"info","message":"GET /devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a? 200 10ms","method":"GET","requestID":"fd36f6392c0356157fcf33ccac8ca3c4","responseTime":10,"status":200,"url":"/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fd36f6392c0356157fcf33ccac8ca3c4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM","level":"info","message":"auth send jwt","requestID":"2d6a22a6e49899aeac7a743a06e085a4"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"2d6a22a6e49899aeac7a743a06e085a4"} authentication-1 | {"level":"info","message":"GET /auth 200 22ms","method":"GET","requestID":"2d6a22a6e49899aeac7a743a06e085a4","responseTime":22,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.691775,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2d6a22a6e49899aeac7a743a06e085a4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240450,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2d6a22a6e49899aeac7a743a06e085a4","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c"},"level":"info","message":"Attempting to run experiment","requestID":"2d6a22a6e49899aeac7a743a06e085a4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c"},"level":"info","message":"Attempting to book experiment","requestID":"2d6a22a6e49899aeac7a743a06e085a4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c"},"level":"info","message":"Successfully booked experiment","requestID":"2d6a22a6e49899aeac7a743a06e085a4"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2eb8dd50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2eb92b70-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":25.011765,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2eb8dd50-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240450,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"2eb8dd50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.810008,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2eb92b70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240450,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"2eb92b70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:07.680779070Z"}]},"request_id":"bf7d377f-f889-47ca-866c-50cdb56f79d6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.5029275} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"2eb8dd50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:07.787524726Z"}]},"request_id":"024601af-b656-4285-9da3-45748cd8ab05","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.5072186} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2eb8dd50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/60c0fb3b-4217-4449-ab9c-30dc622688c7? 200 39ms","method":"GET","requestID":"2eb8dd50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":200,"url":"/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2eb92b70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2eb92b70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a? 200 39ms","method":"GET","requestID":"2eb92b70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":200,"url":"/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c"},"level":"info","message":"Setting up experiment","requestID":"2d6a22a6e49899aeac7a743a06e085a4"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"2d6a22a6e49899aeac7a743a06e085a4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"2d6a22a6e49899aeac7a743a06e085a4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c"},"level":"info","message":"Successfully locked booking for experiment","requestID":"2d6a22a6e49899aeac7a743a06e085a4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c"},"level":"info","message":"Successfully set up experiment","requestID":"2d6a22a6e49899aeac7a743a06e085a4"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2ec78350-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2ec7aa60-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c"},"level":"info","message":"Successfully running experiment","requestID":"2d6a22a6e49899aeac7a743a06e085a4"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":25.03699,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2ec78350-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240450,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"2ec78350-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.607957,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2ec7aa60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240450,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"2ec7aa60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:07.680779070Z"}]},"request_id":"19dab6e2-746f-4afc-9d5d-cfa2cc579973","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.599557} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2ec78350-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:07.787524726Z"}]},"request_id":"2ae5e437-18cd-480f-9593-a503d5bfe3d2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.6001024} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2ec7aa60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc98b7104-f89d-4394-bdd4-832de57dbc5c#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc98b7104-f89d-4394-bdd4-832de57dbc5c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"c9b56c28-b699-40f9-b3be-028d6ac2b1f1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.6041243} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2ec78350-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4a867169-c45b-49c3-b95e-c0aec471ef11","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.6043713} device-1 | {"level":"info","message":"GET /devices/60c0fb3b-4217-4449-ab9c-30dc622688c7? 200 40ms","method":"GET","requestID":"2ec78350-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":40,"status":200,"url":"/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2ec7aa60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a? 200 40ms","method":"GET","requestID":"2ec7aa60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":40,"status":200,"url":"/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"2d6a22a6e49899aeac7a743a06e085a4","responseTime":13,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2ece1300-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bca5cf66-a838-4646-9535-f95260a6ee69","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.6130748} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.218882,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"2d6a22a6e49899aeac7a743a06e085a4"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2ece1300-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"2ece1300-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:54:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"808","request_time":"0.237","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2d6a22a6e49899aeac7a743a06e085a4"} experiment-1 | {"level":"info","message":"POST /experiments? 201 213ms","method":"POST","requestID":"2d6a22a6e49899aeac7a743a06e085a4","responseTime":213,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2ece1300-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/60c0fb3b-4217-4449-ab9c-30dc622688c7/signaling 200 10ms","method":"POST","requestID":"2ece1300-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM","level":"info","message":"auth send jwt","requestID":"8f3afa0f1a7dc394a0760e82bcd38a40"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"8f3afa0f1a7dc394a0760e82bcd38a40","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2ed3b850-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8f3afa0f1a7dc394a0760e82bcd38a40"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cf7969ac-8284-4cee-b977-27671d428d9f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.6504135} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.841107,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8f3afa0f1a7dc394a0760e82bcd38a40","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240450,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8f3afa0f1a7dc394a0760e82bcd38a40","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.04444,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2ed3b850-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","method":"POST","requestID":"2ed3b850-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2ed3b850-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:07.680779070Z"}]},"request_id":"f9c89b14-c6e6-48ae-ade0-84ed44afc501","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.6572514} device-1 | {"level":"info","message":"POST /devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a/signaling 200 12ms","method":"POST","requestID":"2ed3b850-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8f3afa0f1a7dc394a0760e82bcd38a40","responseTime":3,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"2d6a22a6e49899aeac7a743a06e085a4"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8f3afa0f1a7dc394a0760e82bcd38a40"} gateway-1 | {"time_local":"18/Jun/2025:09:54:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/60c0fb3b-4217-4449-ab9c-30dc622688c7? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8f3afa0f1a7dc394a0760e82bcd38a40"} device-1 | {"level":"info","message":"GET /devices/60c0fb3b-4217-4449-ab9c-30dc622688c7? 200 14ms","method":"GET","requestID":"8f3afa0f1a7dc394a0760e82bcd38a40","responseTime":14,"status":200,"url":"/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7?"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2ed62950-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2ed67770-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.798527,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM","level":"info","message":"auth send jwt","requestID":"40b76165f92ab60a5f8f3e7185b645c1"} authentication-1 | {"level":"info","message":"GET /auth 200 28ms","method":"GET","requestID":"40b76165f92ab60a5f8f3e7185b645c1","responseTime":28,"status":200,"url":"/auth"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2ed62950-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240450,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"2ed62950-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.693775,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2ed67770-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240450,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"2ed67770-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"40b76165f92ab60a5f8f3e7185b645c1"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:07.680779070Z"}]},"request_id":"49d2a23e-864d-48fc-bb76-d06cf78758cc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.6965342} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2ed62950-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.66302,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2ed62950-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/60c0fb3b-4217-4449-ab9c-30dc622688c7? 200 39ms","method":"GET","requestID":"2ed62950-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":200,"url":"/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7?"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"40b76165f92ab60a5f8f3e7185b645c1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240450,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"40b76165f92ab60a5f8f3e7185b645c1","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:07.787524726Z"}]},"request_id":"b293b08e-778b-4447-a113-3449d4317616","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.7002456} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"2ed67770-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:07.787524726Z"}]},"request_id":"40f0ba2d-83ce-4226-af1f-e0b2b3ae9812","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.704492} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2ed67770-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"40b76165f92ab60a5f8f3e7185b645c1","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"GET /devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a? 200 43ms","method":"GET","requestID":"2ed67770-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":43,"status":200,"url":"/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c"},"level":"info","message":"Building connection plan","requestID":"2d6a22a6e49899aeac7a743a06e085a4"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"94c54ffe-8ccd-4289-88d3-5f46b28fee8b"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"fc14154f-76c8-4ef7-ab1f-3477a5a8c8de"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"b0adfc82-2f68-4025-bb47-6ac40df26e99"}]},"level":"info","message":"Built pairwise service configurations","requestID":"2d6a22a6e49899aeac7a743a06e085a4"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"40b76165f92ab60a5f8f3e7185b645c1"} gateway-1 | {"time_local":"18/Jun/2025:09:54:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"40b76165f92ab60a5f8f3e7185b645c1"} device-1 | {"level":"info","message":"GET /devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a? 200 13ms","method":"GET","requestID":"40b76165f92ab60a5f8f3e7185b645c1","responseTime":13,"status":200,"url":"/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a?"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"2ee2d380-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"2ee2d380-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"POST /rooms 201 8ms","method":"POST","requestID":"2ee2d380-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":8,"status":201,"url":"/rooms"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/26dd74c8-8711-42cc-8321-2fadaacdfe81?id=37227b96-550e-4d0a-85aa-7da93dda3089","ws://localhost/rooms/26dd74c8-8711-42cc-8321-2fadaacdfe81?id=8d5c8e37-ec7d-4b37-a433-aae44f8e0b72"]},"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"2d6a22a6e49899aeac7a743a06e085a4"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"2ee4a840-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.707993,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2ee4a840-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240450,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"2ee4a840-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"f1ab2e9c-c1cf-46e7-bab1-5d8320aa5c28","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.7923334} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6805ca6d-c79f-4cc3-9ab0-c59fd97795bc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.792619} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"2ee4a840-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"2ee4a840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"2ee4a840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3'","requestID":"2ee4a840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3'","requestID":"2ee4a840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"2ee4a840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 86ms","method":"POST","requestID":"2ee4a840-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":86,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"2ee4a840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"3392a2c2-7faf-4a9e-9d21-df6f9a857ec3","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"61217c77da3ae42fa4b3337235f57d27","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"61217c77da3ae42fa4b3337235f57d27","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3"}}},"level":"info","message":"received a callback","requestID":"61217c77da3ae42fa4b3337235f57d27"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"2ef438a0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"8d5c8e37-ec7d-4b37-a433-aae44f8e0b72\" in room \"http://localhost/rooms/26dd74c8-8711-42cc-8321-2fadaacdfe81\"","requestID":"2ef438a0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"2ef438a0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"2ef4add0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"37227b96-550e-4d0a-85aa-7da93dda3089\" in room \"http://localhost/rooms/26dd74c8-8711-42cc-8321-2fadaacdfe81\"","requestID":"2ef4add0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"2ef4add0-4c2a-11f0-b702-8b8a85c3ad9a"} device-1 | {"data":{"peerconnection":"3392a2c2-7faf-4a9e-9d21-df6f9a857ec3","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"61217c77da3ae42fa4b3337235f57d27","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"61217c77da3ae42fa4b3337235f57d27"} device-1 | {"data":{"peerconnection":"3392a2c2-7faf-4a9e-9d21-df6f9a857ec3","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"2d6a22a6e49899aeac7a743a06e085a4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2ef6d0b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"96dd0f49-5ea2-4972-8f03-9a29a262881a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.8801386} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.483676,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2ef6d0b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"2ef6d0b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"3392a2c2-7faf-4a9e-9d21-df6f9a857ec3","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2ef6d0b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/60c0fb3b-4217-4449-ab9c-30dc622688c7/signaling 200 14ms","method":"POST","requestID":"2ef6d0b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7/signaling"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c34d5ded3147ac068b8b818ceaf44330","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c34d5ded3147ac068b8b818ceaf44330","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2ef968c0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3"}}},"level":"info","message":"received a callback","requestID":"c34d5ded3147ac068b8b818ceaf44330"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9d681b7e-e301-4a66-9e4a-e91cb8254695","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.8970425} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"2efa2c10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.516611,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2ef968c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"2ef968c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2ef968c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a/signaling 200 10ms","method":"POST","requestID":"2ef968c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3392a2c2-7faf-4a9e-9d21-df6f9a857ec3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"09ac044e-a18a-4a16-aa18-f32642eca830","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.9021761} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.473122,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2efa2c10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"2efa2c10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"2efa2c10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3 200 10ms","method":"GET","requestID":"2efa2c10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 29ms","method":"POST","requestID":"c34d5ded3147ac068b8b818ceaf44330","responseTime":29,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"c34d5ded3147ac068b8b818ceaf44330"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2efe23b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a8a2e527-cae2-4055-a456-f1f361262477","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.9279644} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.121561,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2efe23b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2efe23b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2efe23b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a/signaling 200 9ms","method":"POST","requestID":"2efe23b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2effd160-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"67fc3314-62fe-4780-a44f-8f656f79694e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240450.9387367} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.171458,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2effd160-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"2effd160-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2effd160-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/60c0fb3b-4217-4449-ab9c-30dc622688c7/signaling 200 9ms","method":"POST","requestID":"2effd160-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM","level":"info","message":"auth send jwt","requestID":"8a261edd2c7a2120eda87cbea087487f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8a261edd2c7a2120eda87cbea087487f","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c","requestID":"8a261edd2c7a2120eda87cbea087487f"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.843927,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8a261edd2c7a2120eda87cbea087487f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240450,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8a261edd2c7a2120eda87cbea087487f","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c","requestID":"8a261edd2c7a2120eda87cbea087487f"} gateway-1 | {"time_local":"18/Jun/2025:09:54:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c HTTP/1.1","status": "200","body_bytes_sent":"881","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8a261edd2c7a2120eda87cbea087487f"} experiment-1 | {"level":"info","message":"GET /experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c 200 10ms","method":"GET","requestID":"8a261edd2c7a2120eda87cbea087487f","responseTime":10,"status":200,"url":"/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM","level":"info","message":"auth send jwt","requestID":"8e5c84dc1148ebc0c09f8f991c1c961e"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8e5c84dc1148ebc0c09f8f991c1c961e","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c","requestID":"8e5c84dc1148ebc0c09f8f991c1c961e"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:11Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.889039,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:11Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8e5c84dc1148ebc0c09f8f991c1c961e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240450,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"8e5c84dc1148ebc0c09f8f991c1c961e","responseTime":29,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c"},"level":"info","message":"Attempting to finish experiment","requestID":"8e5c84dc1148ebc0c09f8f991c1c961e"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"2f0fafe0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:11Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.770343,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:11Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2f0fafe0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240450,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MH0.QW6X9ZgtJfFnTOIQ4IzvRj6bKzDWgC3tPHMWBZZtzbM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2f0fafe0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3","device":"60c0fb3b-4217-4449-ab9c-30dc622688c7","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3","device":"a860e653-ce4a-4ac6-894b-7036bbeffb1a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"3392a2c2-7faf-4a9e-9d21-df6f9a857ec3","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} gateway-1 | {"time_local":"18/Jun/2025:09:54:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/26dd74c8-8711-42cc-8321-2fadaacdfe81?id=8d5c8e37-ec7d-4b37-a433-aae44f8e0b72 HTTP/1.1","status": "101","body_bytes_sent":"2","request_time":"0.200","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"86093076e4e697cf9e9ce4621bf6b8f1"} gateway-1 | {"time_local":"18/Jun/2025:09:54:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/26dd74c8-8711-42cc-8321-2fadaacdfe81?id=37227b96-550e-4d0a-85aa-7da93dda3089 HTTP/1.1","status": "101","body_bytes_sent":"2","request_time":"0.225","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"524c9e49aa9abad3fd6b1968f18633e4"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"8d5c8e37-ec7d-4b37-a433-aae44f8e0b72\" in room \"http://localhost/rooms/26dd74c8-8711-42cc-8321-2fadaacdfe81\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"8d5c8e37-ec7d-4b37-a433-aae44f8e0b72\" from room \"http://localhost/rooms/26dd74c8-8711-42cc-8321-2fadaacdfe81\", code: 1005, reason: "} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"37227b96-550e-4d0a-85aa-7da93dda3089\" in room \"http://localhost/rooms/26dd74c8-8711-42cc-8321-2fadaacdfe81\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"37227b96-550e-4d0a-85aa-7da93dda3089\" from room \"http://localhost/rooms/26dd74c8-8711-42cc-8321-2fadaacdfe81\", code: 1005, reason: "} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"18d7959d76452bf413723d842e20a68d","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"18d7959d76452bf413723d842e20a68d","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3392a2c2-7faf-4a9e-9d21-df6f9a857ec3': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3392a2c2-7faf-4a9e-9d21-df6f9a857ec3","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"13092c1a-90c0-45bd-9d76-0b8cc5e02ba3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240451.0806296} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"9930a7ef18fcd773c99c1755cb9e96a4","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e059a36c-006f-40ba-b4bb-8cdb2efb40b8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240451.0808558} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9930a7ef18fcd773c99c1755cb9e96a4","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3"}}},"level":"info","message":"received a callback","requestID":"18d7959d76452bf413723d842e20a68d"} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"2f0fafe0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3"}}},"level":"info","message":"received a callback","requestID":"9930a7ef18fcd773c99c1755cb9e96a4"} device-1 | {"data":{"peerconnection":"3392a2c2-7faf-4a9e-9d21-df6f9a857ec3","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"2f0fafe0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3 204 93ms","method":"DELETE","requestID":"2f0fafe0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":93,"status":204,"url":"/peerconnections/3392a2c2-7faf-4a9e-9d21-df6f9a857ec3"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7'"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c"},"level":"info","message":"Successfully finished experiment","requestID":"8e5c84dc1148ebc0c09f8f991c1c961e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2f23d420-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:11Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa860e653-ce4a-4ac6-894b-7036bbeffb1a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3dc7ca99-349c-4257-abcb-6c547717c848","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240451.174521} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.159649,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2f23d420-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"2f23d420-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2f23d420-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a/signaling 200 9ms","method":"POST","requestID":"2f23d420-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2f25a8e0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc98b7104-f89d-4394-bdd4-832de57dbc5c': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc98b7104-f89d-4394-bdd4-832de57dbc5c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"a4b37379-6599-457d-9ea9-034d175e360e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240451.1829543} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9eb9507c-4b40-4e98-8236-495f9d5fd6b4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240451.1832745} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"8e5c84dc1148ebc0c09f8f991c1c961e","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:11Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60c0fb3b-4217-4449-ab9c-30dc622688c7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"11c8c376-829b-4ca4-9a99-d2a1406d040b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240451.1867585} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.537099,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2f25a8e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"2f25a8e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2f25a8e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/60c0fb3b-4217-4449-ab9c-30dc622688c7/signaling 200 10ms","method":"POST","requestID":"2f25a8e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c","requestID":"8e5c84dc1148ebc0c09f8f991c1c961e"} gateway-1 | {"time_local":"18/Jun/2025:09:54:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.293","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8e5c84dc1148ebc0c09f8f991c1c961e"} experiment-1 | {"level":"info","message":"DELETE /experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c 204 288ms","method":"DELETE","requestID":"8e5c84dc1148ebc0c09f8f991c1c961e","responseTime":288,"status":204,"url":"/experiments/c98b7104-f89d-4394-bdd4-832de57dbc5c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 207ms","method":"POST","requestID":"18d7959d76452bf413723d842e20a68d","responseTime":207,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.210","http_referrer":"","http_user_agent":"node-fetch","requestID":"18d7959d76452bf413723d842e20a68d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MX0.vHejulOr7-PyPMwA4Nb4iKNm-3i0OWuBiTlHJT3mBnk","level":"info","message":"auth send jwt","requestID":"da4df78baa389e3077dee44890579bfe"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"da4df78baa389e3077dee44890579bfe","responseTime":3,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1442","request_time":"1.059","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4132884f670293d91d729e878b54c2bf"} device-1 | {"level":"info","message":"postDevices called","requestID":"da4df78baa389e3077dee44890579bfe"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 226ms","method":"POST","requestID":"9930a7ef18fcd773c99c1755cb9e96a4","responseTime":226,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.231","http_referrer":"","http_user_agent":"node-fetch","requestID":"9930a7ef18fcd773c99c1755cb9e96a4"} gateway-1 | {"time_local":"18/Jun/2025:09:54:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1443","request_time":"1.089","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"31c011f4af6d00580d9996130f677a80"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:11Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.901378,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:11Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"da4df78baa389e3077dee44890579bfe","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240451,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MX0.vHejulOr7-PyPMwA4Nb4iKNm-3i0OWuBiTlHJT3mBnk"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"da4df78baa389e3077dee44890579bfe","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/60c0fb3b-4217-4449-ab9c-30dc622688c7' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3ecf82d7-a0ec-4665-a43e-7e03797e85ce","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240451.3315117} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"da4df78baa389e3077dee44890579bfe","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/a860e653-ce4a-4ac6-894b-7036bbeffb1a' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ac6a1a92-c963-4a48-af5c-0118a02b0a8b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240451.336352} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"da4df78baa389e3077dee44890579bfe","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"517fc35c-9d31-459e-b75a-e7b738988602","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240451.346858} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"73fbd205-1d27-449c-ac97-124bcd56f11f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240451.3471735} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"da4df78baa389e3077dee44890579bfe","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:11.346843477Z"}]},"request_id":"728912fc-ce96-4fe2-a600-c1a966b483ae","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240451.3516183} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"da4df78baa389e3077dee44890579bfe","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"da4df78baa389e3077dee44890579bfe"} device-1 | {"level":"info","message":"POST /devices? 201 53ms","method":"POST","requestID":"da4df78baa389e3077dee44890579bfe","responseTime":53,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.065","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"da4df78baa389e3077dee44890579bfe"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MX0.vHejulOr7-PyPMwA4Nb4iKNm-3i0OWuBiTlHJT3mBnk","level":"info","message":"auth send jwt","requestID":"2729c0219c6eaf0517574dd4cdb09dd9"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2729c0219c6eaf0517574dd4cdb09dd9","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"2729c0219c6eaf0517574dd4cdb09dd9"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:11Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.617364,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:11Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2729c0219c6eaf0517574dd4cdb09dd9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240451,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1MX0.vHejulOr7-PyPMwA4Nb4iKNm-3i0OWuBiTlHJT3mBnk"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2729c0219c6eaf0517574dd4cdb09dd9","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f61f0c1a-96eb-4bd4-ac02-2222b5c6a6d3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240451.3717577} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2729c0219c6eaf0517574dd4cdb09dd9","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e1bc2926-163c-42da-9709-2cbbcb23e509","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240451.3759356} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"2729c0219c6eaf0517574dd4cdb09dd9","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"6b37b139-b51d-4125-a72f-6ec344354a19","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240451.3889334} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9989d6d2-2d8e-4957-8491-fc986f7830f5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240451.3890707} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"2729c0219c6eaf0517574dd4cdb09dd9","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:11.388919522Z"}]},"request_id":"c7f87192-6657-4ab5-a6a1-697b2013f4ff","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240451.393799} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2729c0219c6eaf0517574dd4cdb09dd9","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"2729c0219c6eaf0517574dd4cdb09dd9"} gateway-1 | {"time_local":"18/Jun/2025:09:54:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2729c0219c6eaf0517574dd4cdb09dd9"} device-1 | {"level":"info","message":"POST /devices? 201 39ms","method":"POST","requestID":"2729c0219c6eaf0517574dd4cdb09dd9","responseTime":39,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1Mn0.hc17js3OkdwBzxA1-0hOIXQDebRehvxUzY0hFqBH2aQ","level":"info","message":"auth send jwt","requestID":"ce6b68c62c3d41690ce1223482854257"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ce6b68c62c3d41690ce1223482854257","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"ce6b68c62c3d41690ce1223482854257"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:12Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.691213,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:12Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ce6b68c62c3d41690ce1223482854257","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240452,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1Mn0.hc17js3OkdwBzxA1-0hOIXQDebRehvxUzY0hFqBH2aQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ce6b68c62c3d41690ce1223482854257","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:11.388919522Z"}]},"request_id":"7c35c63b-04e3-4ba5-9fe5-68cebd620958","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240452.336028} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ce6b68c62c3d41690ce1223482854257","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"13e6a809-6913-4796-ae32-e715f740391c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240452.3402665} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"ce6b68c62c3d41690ce1223482854257","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:11.388919522Z"}]},"request_id":"0f2a814d-666d-4749-b718-bf20d7fa1527","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240452.3790395} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ce6b68c62c3d41690ce1223482854257","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"ce6b68c62c3d41690ce1223482854257"} device-1 | {"level":"info","message":"PATCH /devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a 200 54ms","method":"PATCH","requestID":"ce6b68c62c3d41690ce1223482854257","responseTime":54,"status":200,"url":"/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a"} gateway-1 | {"time_local":"18/Jun/2025:09:54:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.059","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"ce6b68c62c3d41690ce1223482854257"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1Mn0.hc17js3OkdwBzxA1-0hOIXQDebRehvxUzY0hFqBH2aQ","level":"info","message":"auth send jwt","requestID":"0ca001f534c803ceb961012088715a8a"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0ca001f534c803ceb961012088715a8a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"0ca001f534c803ceb961012088715a8a"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:12Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.690645,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:12Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0ca001f534c803ceb961012088715a8a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240452,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1Mn0.hc17js3OkdwBzxA1-0hOIXQDebRehvxUzY0hFqBH2aQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0ca001f534c803ceb961012088715a8a","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"0ca001f534c803ceb961012088715a8a"} gateway-1 | {"time_local":"18/Jun/2025:09:54:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.044","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"0ca001f534c803ceb961012088715a8a"} device-1 | {"level":"info","message":"POST /devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a/websocket 200 41ms","method":"POST","requestID":"0ca001f534c803ceb961012088715a8a","responseTime":41,"status":200,"url":"/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"46d97373b9f54a015c6cb530c41b0459","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"46d97373b9f54a015c6cb530c41b0459","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"46d97373b9f54a015c6cb530c41b0459"} device-1 | {"level":"info","message":"OPTIONS /devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3/websocket 200 1ms","method":"OPTIONS","requestID":"46d97373b9f54a015c6cb530c41b0459","responseTime":1,"status":200,"url":"/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1M30.fZGh9xRSjDwOI35NXo8V-VStU9ywKb4ZywVolagCYIU","level":"info","message":"auth send jwt","requestID":"9824973fe2af8d2c5d297a2d90c13cff"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9824973fe2af8d2c5d297a2d90c13cff","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"9824973fe2af8d2c5d297a2d90c13cff"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.150544,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:13Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9824973fe2af8d2c5d297a2d90c13cff","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240453,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1M30.fZGh9xRSjDwOI35NXo8V-VStU9ywKb4ZywVolagCYIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"9824973fe2af8d2c5d297a2d90c13cff","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"9824973fe2af8d2c5d297a2d90c13cff"} gateway-1 | {"time_local":"18/Jun/2025:09:54:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.051","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9824973fe2af8d2c5d297a2d90c13cff"} device-1 | {"level":"info","message":"POST /devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3/websocket 200 45ms","method":"POST","requestID":"9824973fe2af8d2c5d297a2d90c13cff","responseTime":45,"status":200,"url":"/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"dd5c188f6d7cdb701abea07ff79088ef","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"dd5c188f6d7cdb701abea07ff79088ef","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"dd5c188f6d7cdb701abea07ff79088ef"} device-1 | {"level":"info","message":"OPTIONS /devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3? 200 1ms","method":"OPTIONS","requestID":"dd5c188f6d7cdb701abea07ff79088ef","responseTime":1,"status":200,"url":"/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1M30.fZGh9xRSjDwOI35NXo8V-VStU9ywKb4ZywVolagCYIU","level":"info","message":"auth send jwt","requestID":"43b66e3c7fbac865d275c8a366274b5e"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"43b66e3c7fbac865d275c8a366274b5e","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"43b66e3c7fbac865d275c8a366274b5e"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.935176,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:13Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"43b66e3c7fbac865d275c8a366274b5e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240453,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1M30.fZGh9xRSjDwOI35NXo8V-VStU9ywKb4ZywVolagCYIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"43b66e3c7fbac865d275c8a366274b5e","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:11.346843477Z"}]},"request_id":"0f985fb2-93ac-497a-9c4d-2e834d0a1ac0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240453.7774937} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"43b66e3c7fbac865d275c8a366274b5e","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"25af7a01-9f5e-4c7b-9f1d-5cad94e57945","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240453.7833016} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"43b66e3c7fbac865d275c8a366274b5e","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:11.346843477Z"}]},"request_id":"851fee41-f7e8-449b-8cf9-0b51febaad96","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240453.8110576} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"43b66e3c7fbac865d275c8a366274b5e","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"43b66e3c7fbac865d275c8a366274b5e"} device-1 | {"level":"info","message":"PATCH /devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3? 200 48ms","method":"PATCH","requestID":"43b66e3c7fbac865d275c8a366274b5e","responseTime":48,"status":200,"url":"/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.054","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"43b66e3c7fbac865d275c8a366274b5e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1M30.fZGh9xRSjDwOI35NXo8V-VStU9ywKb4ZywVolagCYIU","level":"info","message":"auth send jwt","requestID":"38160732fdad66a39fff8e9054e37a28"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"38160732fdad66a39fff8e9054e37a28","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"38160732fdad66a39fff8e9054e37a28"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.887103,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"38160732fdad66a39fff8e9054e37a28","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240453,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1M30.fZGh9xRSjDwOI35NXo8V-VStU9ywKb4ZywVolagCYIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"38160732fdad66a39fff8e9054e37a28","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:11.346843477Z"}]},"request_id":"c5eef7fb-9d17-4bfe-a260-ac1e06fbee77","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240453.8300066} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"38160732fdad66a39fff8e9054e37a28","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"38160732fdad66a39fff8e9054e37a28"} gateway-1 | {"time_local":"18/Jun/2025:09:54:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"38160732fdad66a39fff8e9054e37a28"} device-1 | {"level":"info","message":"GET /devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3? 200 35ms","method":"GET","requestID":"38160732fdad66a39fff8e9054e37a28","responseTime":35,"status":200,"url":"/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1M30.fZGh9xRSjDwOI35NXo8V-VStU9ywKb4ZywVolagCYIU","level":"info","message":"auth send jwt","requestID":"a15ed739ac04e20d6550e2cb2db8edc0"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a15ed739ac04e20d6550e2cb2db8edc0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a15ed739ac04e20d6550e2cb2db8edc0"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.75904,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a15ed739ac04e20d6550e2cb2db8edc0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240453,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1M30.fZGh9xRSjDwOI35NXo8V-VStU9ywKb4ZywVolagCYIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a15ed739ac04e20d6550e2cb2db8edc0","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:11.388919522Z"}]},"request_id":"8f42c2bf-841f-4091-ae3e-5b9edb4f377f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240453.8697834} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a15ed739ac04e20d6550e2cb2db8edc0","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"a15ed739ac04e20d6550e2cb2db8edc0"} gateway-1 | {"time_local":"18/Jun/2025:09:54:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a15ed739ac04e20d6550e2cb2db8edc0"} device-1 | {"level":"info","message":"GET /devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a? 200 11ms","method":"GET","requestID":"a15ed739ac04e20d6550e2cb2db8edc0","responseTime":11,"status":200,"url":"/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1M30.fZGh9xRSjDwOI35NXo8V-VStU9ywKb4ZywVolagCYIU","level":"info","message":"auth send jwt","requestID":"06d98033fca147ecf200f6eb3e633379"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"06d98033fca147ecf200f6eb3e633379","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"06d98033fca147ecf200f6eb3e633379"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.612852,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:13Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"06d98033fca147ecf200f6eb3e633379","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240453,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1M30.fZGh9xRSjDwOI35NXo8V-VStU9ywKb4ZywVolagCYIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"06d98033fca147ecf200f6eb3e633379","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c"},"level":"info","message":"Attempting to run experiment","requestID":"06d98033fca147ecf200f6eb3e633379"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c"},"level":"info","message":"Attempting to book experiment","requestID":"06d98033fca147ecf200f6eb3e633379"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c"},"level":"info","message":"Successfully booked experiment","requestID":"06d98033fca147ecf200f6eb3e633379"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"30ce76e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"30ce9df0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.602483,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:13Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"30ce76e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240453,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1M30.fZGh9xRSjDwOI35NXo8V-VStU9ywKb4ZywVolagCYIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"30ce76e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.756704,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"30ce9df0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240453,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1M30.fZGh9xRSjDwOI35NXo8V-VStU9ywKb4ZywVolagCYIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"30ce9df0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:11.346843477Z"}]},"request_id":"f24a4d1a-6d87-487e-8ae4-cdd05b1abf6e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240453.9736996} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"30ce76e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:11.388919522Z"}]},"request_id":"4327c998-c3db-44e8-8b1f-4ffb4fc51098","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240453.974245} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"30ce9df0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"30ce76e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3? 200 13ms","method":"GET","requestID":"30ce76e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"30ce9df0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a? 200 12ms","method":"GET","requestID":"30ce9df0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c"},"level":"info","message":"Setting up experiment","requestID":"06d98033fca147ecf200f6eb3e633379"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"06d98033fca147ecf200f6eb3e633379"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"06d98033fca147ecf200f6eb3e633379"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c"},"level":"info","message":"Successfully locked booking for experiment","requestID":"06d98033fca147ecf200f6eb3e633379"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c"},"level":"info","message":"Successfully set up experiment","requestID":"06d98033fca147ecf200f6eb3e633379"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"30d4df80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"30d52da0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c"},"level":"info","message":"Successfully running experiment","requestID":"06d98033fca147ecf200f6eb3e633379"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.641874,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"30d4df80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240453,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1M30.fZGh9xRSjDwOI35NXo8V-VStU9ywKb4ZywVolagCYIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"30d4df80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.528199,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"30d52da0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240453,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1M30.fZGh9xRSjDwOI35NXo8V-VStU9ywKb4ZywVolagCYIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"30d52da0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:11.346843477Z"}]},"request_id":"92150fe6-1084-4e7a-922f-eaf00632c130","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.018772} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"30d4df80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:11.388919522Z"}]},"request_id":"2cbe6661-67a0-40d2-8e80-02b2b607301b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.0196605} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"30d52da0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"30d4df80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3? 200 16ms","method":"GET","requestID":"30d4df80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":16,"status":200,"url":"/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"30d52da0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a? 200 15ms","method":"GET","requestID":"30d52da0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":15,"status":200,"url":"/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2209f974-e848-47bf-a1c1-37dc342cde8c#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2209f974-e848-47bf-a1c1-37dc342cde8c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"f6206200-d36c-474f-a55f-218d376fd7aa","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.0249197} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"20a8aa9c-eae0-4c8a-a677-37727a50660e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.025179} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"06d98033fca147ecf200f6eb3e633379","responseTime":12,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"30d7ecc0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dd8b3368-090f-4944-9d04-0c2c5b701362","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.0341804} experiment-1 | {"data":{"experiment":"http://localhost/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"06d98033fca147ecf200f6eb3e633379"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.027282,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} gateway-1 | {"time_local":"18/Jun/2025:09:54:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"812","request_time":"0.160","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"06d98033fca147ecf200f6eb3e633379"} experiment-1 | {"level":"info","message":"POST /experiments? 201 155ms","method":"POST","requestID":"06d98033fca147ecf200f6eb3e633379","responseTime":155,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"30d7ecc0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"30d7ecc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1NH0.tYfjqyUpyct6yB9DNBcJM_3HIBWHef1gnN9NkiQEpOs","level":"info","message":"auth send jwt","requestID":"1a1395eedac690508890f402381a835a"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1a1395eedac690508890f402381a835a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"30d7ecc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3/signaling 200 11ms","method":"POST","requestID":"30d7ecc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1a1395eedac690508890f402381a835a"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"30da0fa0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.667993,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"1a1395eedac690508890f402381a835a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240454,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1NH0.tYfjqyUpyct6yB9DNBcJM_3HIBWHef1gnN9NkiQEpOs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1a1395eedac690508890f402381a835a","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:11.346843477Z"}]},"request_id":"14302577-4e0a-4ee5-bdd3-90f8ba7da371","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.047644} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c5fc8863-4b00-4ff9-8a81-c00b87d76ab7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.0477676} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"1a1395eedac690508890f402381a835a","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.383766,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"30da0fa0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"30da0fa0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1a1395eedac690508890f402381a835a"} gateway-1 | {"time_local":"18/Jun/2025:09:54:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1a1395eedac690508890f402381a835a"} device-1 | {"level":"info","message":"GET /devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3? 200 12ms","method":"GET","requestID":"1a1395eedac690508890f402381a835a","responseTime":12,"status":200,"url":"/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"30da0fa0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a/signaling 200 11ms","method":"POST","requestID":"30da0fa0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"06d98033fca147ecf200f6eb3e633379"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1NH0.tYfjqyUpyct6yB9DNBcJM_3HIBWHef1gnN9NkiQEpOs","level":"info","message":"auth send jwt","requestID":"64f065a82a5ca2739335cdc6e6eb9a02"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"30dc0b70-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"64f065a82a5ca2739335cdc6e6eb9a02","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"30dc5990-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"64f065a82a5ca2739335cdc6e6eb9a02"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Received request.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"client_addr":"127.0.0.1:57076","level":"info","msg":"Sent response.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.906154,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"30dc0b70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240453,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1M30.fZGh9xRSjDwOI35NXo8V-VStU9ywKb4ZywVolagCYIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"30dc0b70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.638966,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"30dc5990-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240453,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1M30.fZGh9xRSjDwOI35NXo8V-VStU9ywKb4ZywVolagCYIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"30dc5990-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.933406,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:11.388919522Z"}]},"request_id":"27894dcb-263a-4801-9a23-0bbec223ef31","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.0670438} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:11.346843477Z"}]},"request_id":"fbbfa6da-d40d-4426-8d3b-bec9fa2420a5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.0689282} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"30dc5990-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"64f065a82a5ca2739335cdc6e6eb9a02","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240454,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1NH0.tYfjqyUpyct6yB9DNBcJM_3HIBWHef1gnN9NkiQEpOs"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","method":"POST","requestID":"64f065a82a5ca2739335cdc6e6eb9a02","responseTime":11,"status":200,"url":"/authorize"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"30dc0b70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"30dc5990-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:11.388919522Z"}]},"request_id":"d662bd79-c1ce-4c47-a096-dee7127f2398","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.083192} device-1 | {"level":"info","message":"GET /devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a? 200 26ms","method":"GET","requestID":"30dc5990-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":26,"status":200,"url":"/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"64f065a82a5ca2739335cdc6e6eb9a02","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"30dc0b70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3? 200 30ms","method":"GET","requestID":"30dc0b70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c"},"level":"info","message":"Building connection plan","requestID":"06d98033fca147ecf200f6eb3e633379"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"64f065a82a5ca2739335cdc6e6eb9a02"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"b6a4ccc5-1002-4d2b-843a-f9832ec99e0b"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"dc1c5d8d-0789-43f9-9e71-1614002fa8d5"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"f60dc8df-2eee-423f-badf-93c2ad980fcd"}]},"level":"info","message":"Built pairwise service configurations","requestID":"06d98033fca147ecf200f6eb3e633379"} gateway-1 | {"time_local":"18/Jun/2025:09:54:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"64f065a82a5ca2739335cdc6e6eb9a02"} device-1 | {"level":"info","message":"GET /devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a? 200 29ms","method":"GET","requestID":"64f065a82a5ca2739335cdc6e6eb9a02","responseTime":29,"status":200,"url":"/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a?"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"30e13b90-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"30e13b90-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"POST /rooms 201 4ms","method":"POST","requestID":"30e13b90-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":4,"status":201,"url":"/rooms"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/c092760d-e65d-45bd-9cd7-4de23a5144e6?id=550103c0-69fb-471b-9028-d3651ce9bd04","ws://localhost/rooms/c092760d-e65d-45bd-9cd7-4de23a5144e6?id=c59d36e0-7192-47f5-86db-bf9d8b41eafc"]},"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"06d98033fca147ecf200f6eb3e633379"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"30e225f0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.651217,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"30e225f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240453,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1M30.fZGh9xRSjDwOI35NXo8V-VStU9ywKb4ZywVolagCYIU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"30e225f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"7e301226-b38a-40cd-af4c-64f18ae3725f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.1096535} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"df68632c-63e3-460d-a67f-37be283fd2c6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.109918} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"30e225f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"30e225f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"30e225f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/1c73ad23-836f-4025-9325-0253e19430bb'","requestID":"30e225f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/1c73ad23-836f-4025-9325-0253e19430bb'","requestID":"30e225f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"30e225f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 59ms","method":"POST","requestID":"30e225f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":59,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"30e225f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/1c73ad23-836f-4025-9325-0253e19430bb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1c73ad23-836f-4025-9325-0253e19430bb","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"30ec8630-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"550103c0-69fb-471b-9028-d3651ce9bd04\" in room \"http://localhost/rooms/c092760d-e65d-45bd-9cd7-4de23a5144e6\"","requestID":"30ec8630-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"30ec8630-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ba91f06f19c363987aa7de88833d4a70","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ba91f06f19c363987aa7de88833d4a70","responseTime":1,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"30ecfb60-4c2a-11f0-b702-8b8a85c3ad9a"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/1c73ad23-836f-4025-9325-0253e19430bb"}}},"level":"info","message":"received a callback","requestID":"ba91f06f19c363987aa7de88833d4a70"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"c59d36e0-7192-47f5-86db-bf9d8b41eafc\" in room \"http://localhost/rooms/c092760d-e65d-45bd-9cd7-4de23a5144e6\"","requestID":"30ecfb60-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"30ecfb60-4c2a-11f0-b702-8b8a85c3ad9a"} device-1 | {"data":{"peerconnection":"1c73ad23-836f-4025-9325-0253e19430bb","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 37ms","method":"POST","requestID":"ba91f06f19c363987aa7de88833d4a70","responseTime":37,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch","requestID":"ba91f06f19c363987aa7de88833d4a70"} device-1 | {"data":{"peerconnection":"1c73ad23-836f-4025-9325-0253e19430bb","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"06d98033fca147ecf200f6eb3e633379"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"30f4eaa0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/1c73ad23-836f-4025-9325-0253e19430bb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1c73ad23-836f-4025-9325-0253e19430bb","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"92fa3c14-4e5a-4236-91d6-dc69856e9039","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.243549} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.102658,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"30f4eaa0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"30f4eaa0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"24e4cffbf21c52b97172c77fdca1d162","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"24e4cffbf21c52b97172c77fdca1d162","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/1c73ad23-836f-4025-9325-0253e19430bb"}}},"level":"info","message":"received a callback","requestID":"24e4cffbf21c52b97172c77fdca1d162"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"30f4eaa0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3/signaling 200 31ms","method":"POST","requestID":"30f4eaa0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"30fa1ac0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"30fa8ff0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fe9e291b-b9e4-43bf-bfcd-a1ca23ac7ae3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.2570384} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.697937,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"30fa1ac0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"30fa1ac0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1c73ad23-836f-4025-9325-0253e19430bb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"98f871d7-11ef-44f3-a8c2-2ab89b58b88f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.2594755} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.119055,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/1c73ad23-836f-4025-9325-0253e19430bb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"30fa8ff0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/1c73ad23-836f-4025-9325-0253e19430bb","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"30fa8ff0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"30fa1ac0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a/signaling 200 11ms","method":"POST","requestID":"30fa1ac0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a/signaling"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"30fa8ff0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/1c73ad23-836f-4025-9325-0253e19430bb 200 9ms","method":"GET","requestID":"30fa8ff0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/peerconnections/1c73ad23-836f-4025-9325-0253e19430bb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1NH0.tYfjqyUpyct6yB9DNBcJM_3HIBWHef1gnN9NkiQEpOs","level":"info","message":"auth send jwt","requestID":"944e3ac386a91a3fd5a344a1895d9aed"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"944e3ac386a91a3fd5a344a1895d9aed","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/2209f974-e848-47bf-a1c1-37dc342cde8c","requestID":"944e3ac386a91a3fd5a344a1895d9aed"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.713933,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"944e3ac386a91a3fd5a344a1895d9aed","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240454,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1NH0.tYfjqyUpyct6yB9DNBcJM_3HIBWHef1gnN9NkiQEpOs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"944e3ac386a91a3fd5a344a1895d9aed","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 60ms","method":"POST","requestID":"24e4cffbf21c52b97172c77fdca1d162","responseTime":60,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch","requestID":"24e4cffbf21c52b97172c77fdca1d162"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3102cd50-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/2209f974-e848-47bf-a1c1-37dc342cde8c","requestID":"944e3ac386a91a3fd5a344a1895d9aed"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} gateway-1 | {"time_local":"18/Jun/2025:09:54:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/2209f974-e848-47bf-a1c1-37dc342cde8c HTTP/1.1","status": "200","body_bytes_sent":"885","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"944e3ac386a91a3fd5a344a1895d9aed"} experiment-1 | {"level":"info","message":"GET /experiments/2209f974-e848-47bf-a1c1-37dc342cde8c 200 16ms","method":"GET","requestID":"944e3ac386a91a3fd5a344a1895d9aed","responseTime":16,"status":200,"url":"/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b1f802f3-5d22-4939-a250-129840009474","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.3384023} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.40849,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1NH0.tYfjqyUpyct6yB9DNBcJM_3HIBWHef1gnN9NkiQEpOs","level":"info","message":"auth send jwt","requestID":"5cab37c6bab5eeec6708a6af623a1ac2"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3102cd50-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5cab37c6bab5eeec6708a6af623a1ac2","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"3102cd50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/2209f974-e848-47bf-a1c1-37dc342cde8c","requestID":"5cab37c6bab5eeec6708a6af623a1ac2"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3102cd50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a/signaling 200 34ms","method":"POST","requestID":"3102cd50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a/signaling"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.723501,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5cab37c6bab5eeec6708a6af623a1ac2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240454,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1NH0.tYfjqyUpyct6yB9DNBcJM_3HIBWHef1gnN9NkiQEpOs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5cab37c6bab5eeec6708a6af623a1ac2","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"310872a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0809d12c-6072-4cc4-8f3e-2f2b840af416","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.3512008} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.509852,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c"},"level":"info","message":"Attempting to finish experiment","requestID":"5cab37c6bab5eeec6708a6af623a1ac2"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"310872a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"310872a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"3109ab20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"310872a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.808829,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} device-1 | {"level":"info","message":"POST /devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3/signaling 200 11ms","method":"POST","requestID":"310872a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3/signaling"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/1c73ad23-836f-4025-9325-0253e19430bb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3109ab20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/1c73ad23-836f-4025-9325-0253e19430bb","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240454,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1NH0.tYfjqyUpyct6yB9DNBcJM_3HIBWHef1gnN9NkiQEpOs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3109ab20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:54:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/c092760d-e65d-45bd-9cd7-4de23a5144e6?id=550103c0-69fb-471b-9028-d3651ce9bd04 HTTP/1.1","status": "101","body_bytes_sent":"0","request_time":"0.227","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"bd230a344c740d8043760f2fde5cbe4c"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"550103c0-69fb-471b-9028-d3651ce9bd04\" in room \"http://localhost/rooms/c092760d-e65d-45bd-9cd7-4de23a5144e6\""} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/1c73ad23-836f-4025-9325-0253e19430bb","device":"b2b5f396-5c89-4838-a8b4-5e6336ce38a3","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"550103c0-69fb-471b-9028-d3651ce9bd04\" from room \"http://localhost/rooms/c092760d-e65d-45bd-9cd7-4de23a5144e6\", code: 1006, reason: "} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/1c73ad23-836f-4025-9325-0253e19430bb' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/1c73ad23-836f-4025-9325-0253e19430bb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1c73ad23-836f-4025-9325-0253e19430bb","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} gateway-1 | {"time_local":"18/Jun/2025:09:54:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/c092760d-e65d-45bd-9cd7-4de23a5144e6?id=c59d36e0-7192-47f5-86db-bf9d8b41eafc HTTP/1.1","status": "101","body_bytes_sent":"2","request_time":"0.227","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"cd6ca3cecf1a74a13aefa3b82c1d9694"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"c59d36e0-7192-47f5-86db-bf9d8b41eafc\" in room \"http://localhost/rooms/c092760d-e65d-45bd-9cd7-4de23a5144e6\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"c59d36e0-7192-47f5-86db-bf9d8b41eafc\" from room \"http://localhost/rooms/c092760d-e65d-45bd-9cd7-4de23a5144e6\", code: 1005, reason: "} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e04ce4d5fb56f94de79fc12fe9f980bc","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e04ce4d5fb56f94de79fc12fe9f980bc","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a1dcce669c8fe049bc5eb5ad853e4ea1","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a1dcce669c8fe049bc5eb5ad853e4ea1","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/1c73ad23-836f-4025-9325-0253e19430bb"}}},"level":"info","message":"received a callback","requestID":"e04ce4d5fb56f94de79fc12fe9f980bc"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1c73ad23-836f-4025-9325-0253e19430bb': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1c73ad23-836f-4025-9325-0253e19430bb","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"2281e5a2-df6f-42aa-a3ba-e93fc2fd93c2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.3956757} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/1c73ad23-836f-4025-9325-0253e19430bb"}}},"level":"info","message":"received a callback","requestID":"a1dcce669c8fe049bc5eb5ad853e4ea1"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7b98a984-b337-4414-92f5-7adf9afd22dc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.39615} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"3109ab20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"1c73ad23-836f-4025-9325-0253e19430bb","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"3109ab20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/1c73ad23-836f-4025-9325-0253e19430bb 204 89ms","method":"DELETE","requestID":"3109ab20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":89,"status":204,"url":"/peerconnections/1c73ad23-836f-4025-9325-0253e19430bb"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c"},"level":"info","message":"Successfully finished experiment","requestID":"5cab37c6bab5eeec6708a6af623a1ac2"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"311d5a30-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d928d1d-3839-4361-92fc-40c8cb1b1f1a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"04176741-7126-4e5e-862a-f8d8fbe06ccb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.4878302} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.461036,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"311d5a30-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"311d5a30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"311d5a30-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a/signaling 200 9ms","method":"POST","requestID":"311d5a30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"311f07e0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2209f974-e848-47bf-a1c1-37dc342cde8c': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2209f974-e848-47bf-a1c1-37dc342cde8c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"0ec450b3-94bd-4f16-a60a-eb937e1300da","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.4946842} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c875bd73-83e5-4b7c-bd67-d20258c597b4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.4949276} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"5cab37c6bab5eeec6708a6af623a1ac2","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2b5f396-5c89-4838-a8b4-5e6336ce38a3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3744427d-accc-4e12-b8b4-1841ef6c35d9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.4997237} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.385833,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"311f07e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"311f07e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"311f07e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3/signaling 200 10ms","method":"POST","requestID":"311f07e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/2209f974-e848-47bf-a1c1-37dc342cde8c","requestID":"5cab37c6bab5eeec6708a6af623a1ac2"} gateway-1 | {"time_local":"18/Jun/2025:09:54:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/2209f974-e848-47bf-a1c1-37dc342cde8c HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.257","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5cab37c6bab5eeec6708a6af623a1ac2"} experiment-1 | {"level":"info","message":"DELETE /experiments/2209f974-e848-47bf-a1c1-37dc342cde8c 204 254ms","method":"DELETE","requestID":"5cab37c6bab5eeec6708a6af623a1ac2","responseTime":254,"status":204,"url":"/experiments/2209f974-e848-47bf-a1c1-37dc342cde8c"} gateway-1 | {"time_local":"18/Jun/2025:09:54:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1443","request_time":"2.167","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"4ee5906730a3a0f162848dbc3295d0ca"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 202ms","method":"POST","requestID":"e04ce4d5fb56f94de79fc12fe9f980bc","responseTime":202,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.205","http_referrer":"","http_user_agent":"node-fetch","requestID":"e04ce4d5fb56f94de79fc12fe9f980bc"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1NH0.tYfjqyUpyct6yB9DNBcJM_3HIBWHef1gnN9NkiQEpOs","level":"info","message":"auth send jwt","requestID":"8d6dbc6d149ea52fafc359626d0ce789"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 203ms","method":"POST","requestID":"a1dcce669c8fe049bc5eb5ad853e4ea1","responseTime":203,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.206","http_referrer":"","http_user_agent":"node-fetch","requestID":"a1dcce669c8fe049bc5eb5ad853e4ea1"} authentication-1 | {"level":"info","message":"GET /auth 200 28ms","method":"GET","requestID":"8d6dbc6d149ea52fafc359626d0ce789","responseTime":28,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"8d6dbc6d149ea52fafc359626d0ce789"} gateway-1 | {"time_local":"18/Jun/2025:09:54:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1766","request_time":"0.896","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1f25a5cdfffc1f24b1dc306eb1a87bf8"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.915083,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8d6dbc6d149ea52fafc359626d0ce789","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240454,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1NH0.tYfjqyUpyct6yB9DNBcJM_3HIBWHef1gnN9NkiQEpOs"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8d6dbc6d149ea52fafc359626d0ce789","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/1d928d1d-3839-4361-92fc-40c8cb1b1f1a' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"43eae5c9-b25f-4e11-888a-5a543906a1a9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.652123} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8d6dbc6d149ea52fafc359626d0ce789","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c5529155-28b2-4da7-9c5e-2ebb7e77cd94","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.657943} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"8d6dbc6d149ea52fafc359626d0ce789","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/b2b5f396-5c89-4838-a8b4-5e6336ce38a3' closed"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"14216749-a566-4823-bfc2-b5b56974731b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.6831112} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"977ffb04-74ad-4bb2-a5b9-947b67a97d51","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.6833656} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"8d6dbc6d149ea52fafc359626d0ce789","responseTime":28,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:14.682916301Z"}]},"request_id":"45ff12ff-da1d-4b6b-8e7d-3c36ccec407d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.6885436} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8d6dbc6d149ea52fafc359626d0ce789","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"8d6dbc6d149ea52fafc359626d0ce789"} gateway-1 | {"time_local":"18/Jun/2025:09:54:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.094","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8d6dbc6d149ea52fafc359626d0ce789"} device-1 | {"level":"info","message":"POST /devices? 201 64ms","method":"POST","requestID":"8d6dbc6d149ea52fafc359626d0ce789","responseTime":64,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1NH0.tYfjqyUpyct6yB9DNBcJM_3HIBWHef1gnN9NkiQEpOs","level":"info","message":"auth send jwt","requestID":"cacf2995f33af7214aa4d7b5b32bc505"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cacf2995f33af7214aa4d7b5b32bc505","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"cacf2995f33af7214aa4d7b5b32bc505"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.712388,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:14Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"cacf2995f33af7214aa4d7b5b32bc505","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240454,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1NH0.tYfjqyUpyct6yB9DNBcJM_3HIBWHef1gnN9NkiQEpOs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"cacf2995f33af7214aa4d7b5b32bc505","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4de2c644-3a25-46e8-ae1f-6b4176da75e7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.7121727} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"cacf2995f33af7214aa4d7b5b32bc505","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b837cec6-438b-4eb6-b986-8c9c15f823b8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.7163045} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"cacf2995f33af7214aa4d7b5b32bc505","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"a61fbc1c-fe82-4fe4-b03e-6898bbcda579","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.7251878} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d784fc35-30a6-46f8-9ce4-03a3677073d5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.7253568} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"cacf2995f33af7214aa4d7b5b32bc505","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:14.725174309Z"}]},"request_id":"6a179aa0-2370-45a4-ab57-ca9cd5498e23","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240454.7290492} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"cacf2995f33af7214aa4d7b5b32bc505","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"cacf2995f33af7214aa4d7b5b32bc505"} gateway-1 | {"time_local":"18/Jun/2025:09:54:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cacf2995f33af7214aa4d7b5b32bc505"} device-1 | {"level":"info","message":"POST /devices? 201 35ms","method":"POST","requestID":"cacf2995f33af7214aa4d7b5b32bc505","responseTime":35,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1NX0.lr40VDydm2KCBArMWi0k3tZnvZqXNez_Ar0qrABgo14","level":"info","message":"auth send jwt","requestID":"d21167ff92ea974fd444bf37bbb7623d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d21167ff92ea974fd444bf37bbb7623d","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"d21167ff92ea974fd444bf37bbb7623d"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:15Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.764853,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:15Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d21167ff92ea974fd444bf37bbb7623d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240455,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1NX0.lr40VDydm2KCBArMWi0k3tZnvZqXNez_Ar0qrABgo14"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"d21167ff92ea974fd444bf37bbb7623d","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:14.682916301Z"}]},"request_id":"d1ea40df-34dc-48cf-b322-ff8592747725","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240455.6467962} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d21167ff92ea974fd444bf37bbb7623d","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e2d3eda8-e8bd-4619-b8d6-dd9d543a3df3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240455.6516829} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"d21167ff92ea974fd444bf37bbb7623d","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:14.682916301Z"}]},"request_id":"5e85b74f-39d5-43b5-ad6e-55db42dafbac","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240455.6942568} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d21167ff92ea974fd444bf37bbb7623d","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"d21167ff92ea974fd444bf37bbb7623d"} device-1 | {"level":"info","message":"PATCH /devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb 200 59ms","method":"PATCH","requestID":"d21167ff92ea974fd444bf37bbb7623d","responseTime":59,"status":200,"url":"/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb"} gateway-1 | {"time_local":"18/Jun/2025:09:54:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.063","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"d21167ff92ea974fd444bf37bbb7623d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1NX0.lr40VDydm2KCBArMWi0k3tZnvZqXNez_Ar0qrABgo14","level":"info","message":"auth send jwt","requestID":"da2b95f4fb3fe45c72b90aa91029fb5c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"da2b95f4fb3fe45c72b90aa91029fb5c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"da2b95f4fb3fe45c72b90aa91029fb5c"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:15Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.717216,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:15Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"da2b95f4fb3fe45c72b90aa91029fb5c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240455,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1NX0.lr40VDydm2KCBArMWi0k3tZnvZqXNez_Ar0qrABgo14"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"da2b95f4fb3fe45c72b90aa91029fb5c","responseTime":27,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"da2b95f4fb3fe45c72b90aa91029fb5c"} device-1 | {"level":"info","message":"POST /devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb/websocket 200 40ms","method":"POST","requestID":"da2b95f4fb3fe45c72b90aa91029fb5c","responseTime":40,"status":200,"url":"/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:54:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.044","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"da2b95f4fb3fe45c72b90aa91029fb5c"} device-1 | {"level":"info","message":"device 'http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb' connected"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"8d5c8e37-ec7d-4b37-a433-aae44f8e0b72\" in room \"http://localhost/rooms/26dd74c8-8711-42cc-8321-2fadaacdfe81\"","requestID":"2ef438a0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"37227b96-550e-4d0a-85aa-7da93dda3089\" in room \"http://localhost/rooms/26dd74c8-8711-42cc-8321-2fadaacdfe81\"","requestID":"2ef4add0-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"35601abd607efc4951dccb2bec6fcd3a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"35601abd607efc4951dccb2bec6fcd3a","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"35601abd607efc4951dccb2bec6fcd3a"} device-1 | {"level":"info","message":"OPTIONS /devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696/websocket 200 1ms","method":"OPTIONS","requestID":"35601abd607efc4951dccb2bec6fcd3a","responseTime":1,"status":200,"url":"/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ","level":"info","message":"auth send jwt","requestID":"8c29f775f6dc459c13ed9d6c2d0649f7"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8c29f775f6dc459c13ed9d6c2d0649f7","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"8c29f775f6dc459c13ed9d6c2d0649f7"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.160484,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8c29f775f6dc459c13ed9d6c2d0649f7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240457,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"8c29f775f6dc459c13ed9d6c2d0649f7","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"8c29f775f6dc459c13ed9d6c2d0649f7"} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.032","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8c29f775f6dc459c13ed9d6c2d0649f7"} device-1 | {"level":"info","message":"POST /devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696/websocket 200 26ms","method":"POST","requestID":"8c29f775f6dc459c13ed9d6c2d0649f7","responseTime":26,"status":200,"url":"/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"08ce4e167584a33896501e60e007283f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"08ce4e167584a33896501e60e007283f","responseTime":0,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"08ce4e167584a33896501e60e007283f"} device-1 | {"level":"info","message":"OPTIONS /devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696? 200 0ms","method":"OPTIONS","requestID":"08ce4e167584a33896501e60e007283f","responseTime":0,"status":200,"url":"/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ","level":"info","message":"auth send jwt","requestID":"9dfd3764126e9303e5da6569e3346c5d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9dfd3764126e9303e5da6569e3346c5d","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"9dfd3764126e9303e5da6569e3346c5d"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.711115,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9dfd3764126e9303e5da6569e3346c5d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240457,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"9dfd3764126e9303e5da6569e3346c5d","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:14.725174309Z"}]},"request_id":"a3eac287-499a-49a9-8430-7e597b2aa930","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.0998538} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"9dfd3764126e9303e5da6569e3346c5d","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6fc17b9e-dc8c-440c-899d-96a2d8d6c86b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.105022} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"9dfd3764126e9303e5da6569e3346c5d","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:14.725174309Z"}]},"request_id":"105762e8-89a0-498c-979c-dd620193b790","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.1194417} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"9dfd3764126e9303e5da6569e3346c5d","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"9dfd3764126e9303e5da6569e3346c5d"} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.036","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9dfd3764126e9303e5da6569e3346c5d"} device-1 | {"level":"info","message":"PATCH /devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696? 200 32ms","method":"PATCH","requestID":"9dfd3764126e9303e5da6569e3346c5d","responseTime":32,"status":200,"url":"/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ","level":"info","message":"auth send jwt","requestID":"ed2e23b9119424a3c22d1528265bcf10"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ed2e23b9119424a3c22d1528265bcf10","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ed2e23b9119424a3c22d1528265bcf10"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.636345,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ed2e23b9119424a3c22d1528265bcf10","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240457,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ed2e23b9119424a3c22d1528265bcf10","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:14.682916301Z"}]},"request_id":"a83c2f2b-f205-435b-a937-c422ee875752","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.1394987} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ed2e23b9119424a3c22d1528265bcf10","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ed2e23b9119424a3c22d1528265bcf10"} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ed2e23b9119424a3c22d1528265bcf10"} device-1 | {"level":"info","message":"GET /devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb? 200 12ms","method":"GET","requestID":"ed2e23b9119424a3c22d1528265bcf10","responseTime":12,"status":200,"url":"/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb?"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ebef59c149d250e0205a4e498eaa2334"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ","level":"info","message":"auth send jwt","requestID":"ebef59c149d250e0205a4e498eaa2334"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ebef59c149d250e0205a4e498eaa2334","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.329983,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ebef59c149d250e0205a4e498eaa2334","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240457,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"ebef59c149d250e0205a4e498eaa2334","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:14.725174309Z"}]},"request_id":"d02b2c66-fcca-44fa-a36d-faab6f3f1ee8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.1616027} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ebef59c149d250e0205a4e498eaa2334","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ebef59c149d250e0205a4e498eaa2334"} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ebef59c149d250e0205a4e498eaa2334"} device-1 | {"level":"info","message":"GET /devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696? 200 15ms","method":"GET","requestID":"ebef59c149d250e0205a4e498eaa2334","responseTime":15,"status":200,"url":"/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ","level":"info","message":"auth send jwt","requestID":"70fa17a0f1d58e43bba44557ff6d5952"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"70fa17a0f1d58e43bba44557ff6d5952","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"70fa17a0f1d58e43bba44557ff6d5952"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.643222,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"70fa17a0f1d58e43bba44557ff6d5952","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240457,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"70fa17a0f1d58e43bba44557ff6d5952","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6"},"level":"info","message":"Attempting to run experiment","requestID":"70fa17a0f1d58e43bba44557ff6d5952"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6"},"level":"info","message":"Attempting to book experiment","requestID":"70fa17a0f1d58e43bba44557ff6d5952"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6"},"level":"info","message":"Successfully booked experiment","requestID":"70fa17a0f1d58e43bba44557ff6d5952"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"32c62830-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"32c64f40-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.619551,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"32c62830-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240457,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"32c62830-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.625694,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"32c64f40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240457,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"32c64f40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:14.682916301Z"}]},"request_id":"cbffcb7b-a9fd-445e-be76-fdb290b2065d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.2743177} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"32c62830-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:14.725174309Z"}]},"request_id":"e1ccce33-3fc7-4e76-a3c7-2d64e940fbcd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.2749498} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"32c64f40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"32c62830-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb? 200 12ms","method":"GET","requestID":"32c62830-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"32c64f40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696? 200 11ms","method":"GET","requestID":"32c64f40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6"},"level":"info","message":"Setting up experiment","requestID":"70fa17a0f1d58e43bba44557ff6d5952"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"70fa17a0f1d58e43bba44557ff6d5952"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"70fa17a0f1d58e43bba44557ff6d5952"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6"},"level":"info","message":"Successfully locked booking for experiment","requestID":"70fa17a0f1d58e43bba44557ff6d5952"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6"},"level":"info","message":"Successfully set up experiment","requestID":"70fa17a0f1d58e43bba44557ff6d5952"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"32d06160-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"32d08870-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.98538,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"32d06160-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240457,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"32d06160-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.522584,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"32d08870-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240457,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"32d08870-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:14.682916301Z"}]},"request_id":"96146f79-f0f9-4d8f-8387-7c5955ca8eb9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.345409} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"32d06160-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:14.725174309Z"}]},"request_id":"99865c8e-1ec8-4740-9153-869c3936078c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.346275} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"32d08870-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"32d06160-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb? 200 16ms","method":"GET","requestID":"32d06160-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":16,"status":200,"url":"/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"32d08870-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696? 200 15ms","method":"GET","requestID":"32d08870-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":15,"status":200,"url":"/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"32d34790-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6"},"level":"info","message":"Successfully running experiment","requestID":"70fa17a0f1d58e43bba44557ff6d5952"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"88d3beaa-e3f6-43d8-9fcf-1e860b8a73fa","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.3578176} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.501771,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"32d34790-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"32d34790-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"32d34790-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb/signaling 200 9ms","method":"POST","requestID":"32d34790-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"32d4f540-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7839f3e5-0b83-4f4b-8d2e-b9aac227ec53","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.3688927} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.156421,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"32d4f540-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"32d4f540-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F12dea8cc-a9f5-49d2-ad89-a11ed58773f6#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F12dea8cc-a9f5-49d2-ad89-a11ed58773f6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"eb5d95ee-1ebe-488f-ad6d-ca0611b1c4c2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.3701541} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1c226cf7-c4ab-4178-8c8c-a40fac0e8544","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.3704607} authorization-1 | {"level":"info","message":"POST /relations/update 200 34ms","method":"POST","requestID":"70fa17a0f1d58e43bba44557ff6d5952","responseTime":34,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"32d4f540-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696/signaling 200 10ms","method":"POST","requestID":"32d4f540-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"70fa17a0f1d58e43bba44557ff6d5952"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"32d6f110-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"32d73f30-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"70fa17a0f1d58e43bba44557ff6d5952"} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"812","request_time":"0.214","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"70fa17a0f1d58e43bba44557ff6d5952"} experiment-1 | {"level":"info","message":"POST /experiments? 201 211ms","method":"POST","requestID":"70fa17a0f1d58e43bba44557ff6d5952","responseTime":211,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.781764,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"32d6f110-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240457,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"32d6f110-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.607682,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"32d73f30-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240457,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"32d73f30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ","level":"info","message":"auth send jwt","requestID":"925b4d32eea0325bfd6bb731335bda59"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"925b4d32eea0325bfd6bb731335bda59","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"925b4d32eea0325bfd6bb731335bda59"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:14.682916301Z"}]},"request_id":"a6b5a8b7-00fa-4264-b597-baa2b3183bb1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.3873572} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"32d6f110-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:14.725174309Z"}]},"request_id":"6d768be0-a95c-4d2e-902b-51256fab4e03","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.3888683} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"32d73f30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"32d6f110-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.905048,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} device-1 | {"level":"info","message":"GET /devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb? 200 15ms","method":"GET","requestID":"32d6f110-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":15,"status":200,"url":"/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb?"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"925b4d32eea0325bfd6bb731335bda59","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240457,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"925b4d32eea0325bfd6bb731335bda59","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"32d73f30-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696? 200 17ms","method":"GET","requestID":"32d73f30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":17,"status":200,"url":"/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:14.682916301Z"}]},"request_id":"f45d370c-32f8-4161-b7a7-8b9736c4b5af","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.39653} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6"},"level":"info","message":"Building connection plan","requestID":"70fa17a0f1d58e43bba44557ff6d5952"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"4f3f063d-87f8-458f-88e4-8c0c9dee3051"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"8b790fd5-b51d-4dde-9725-6d56a667a602"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"cb8ed613-97b0-4a60-8cb4-32918c9acb30"}]},"level":"info","message":"Built pairwise service configurations","requestID":"70fa17a0f1d58e43bba44557ff6d5952"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"925b4d32eea0325bfd6bb731335bda59","responseTime":3,"status":200,"url":"/relations/query"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"32da4c70-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"32da4c70-4c2a-11f0-b702-8b8a85c3ad9a"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"925b4d32eea0325bfd6bb731335bda59"} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"925b4d32eea0325bfd6bb731335bda59"} device-1 | {"level":"info","message":"GET /devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb? 200 13ms","method":"GET","requestID":"925b4d32eea0325bfd6bb731335bda59","responseTime":13,"status":200,"url":"/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb?"} forwarding-1 | {"level":"info","message":"POST /rooms 201 1ms","method":"POST","requestID":"32da4c70-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":1,"status":201,"url":"/rooms"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/9b311815-e287-44b0-aa14-b4c92c7e0e57?id=1e03f5ad-fb6b-47eb-841c-ebd5faa8be0b","ws://localhost/rooms/9b311815-e287-44b0-aa14-b4c92c7e0e57?id=9b921119-1da5-49b8-aaad-e97ba8e2c087"]},"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"70fa17a0f1d58e43bba44557ff6d5952"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"32dae8b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ","level":"info","message":"auth send jwt","requestID":"f6e2d64eba6f78d6e9f8bd96c2929049"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f6e2d64eba6f78d6e9f8bd96c2929049","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"f6e2d64eba6f78d6e9f8bd96c2929049"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.90734,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"32dae8b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240457,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"32dae8b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.505498,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f6e2d64eba6f78d6e9f8bd96c2929049","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240457,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"f6e2d64eba6f78d6e9f8bd96c2929049","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:14.725174309Z"}]},"request_id":"d5210095-a885-408c-911d-2863e3153998","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.4139373} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"f6e2d64eba6f78d6e9f8bd96c2929049","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"f6e2d64eba6f78d6e9f8bd96c2929049"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"b9d3b38f-2fbf-4f78-b2b5-0615b349724e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.4184399} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f6e2d64eba6f78d6e9f8bd96c2929049"} device-1 | {"level":"info","message":"GET /devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696? 200 13ms","method":"GET","requestID":"f6e2d64eba6f78d6e9f8bd96c2929049","responseTime":13,"status":200,"url":"/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c94a6758-d6b4-4143-9024-bae03ebfb788","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.4186878} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"32dae8b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"32dae8b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"32dae8b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b'","requestID":"32dae8b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b'","requestID":"32dae8b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"32dae8b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 66ms","method":"POST","requestID":"32dae8b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":66,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"32dae8b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"32e68170-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"1e03f5ad-fb6b-47eb-841c-ebd5faa8be0b\" in room \"http://localhost/rooms/9b311815-e287-44b0-aa14-b4c92c7e0e57\"","requestID":"32e68170-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"32e68170-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"32ea7910-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"9b921119-1da5-49b8-aaad-e97ba8e2c087\" in room \"http://localhost/rooms/9b311815-e287-44b0-aa14-b4c92c7e0e57\"","requestID":"32ea7910-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"899cea7c50d3183ec8e6965b8c8882b7","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"32ea7910-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"899cea7c50d3183ec8e6965b8c8882b7","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b"}}},"level":"info","message":"received a callback","requestID":"899cea7c50d3183ec8e6965b8c8882b7"} device-1 | {"data":{"peerconnection":"7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"899cea7c50d3183ec8e6965b8c8882b7","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch","requestID":"899cea7c50d3183ec8e6965b8c8882b7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"70fa17a0f1d58e43bba44557ff6d5952"} device-1 | {"data":{"peerconnection":"7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"32f1cc10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"999f4b43-b281-484b-a4e0-d26cdad407ce","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.5590127} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.667176,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"32f1cc10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"32f1cc10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"32f1cc10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb/signaling 200 13ms","method":"POST","requestID":"32f1cc10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb/signaling"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"91080445af630ef6298e006335062d16","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"91080445af630ef6298e006335062d16","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"32f41600-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b"}}},"level":"info","message":"received a callback","requestID":"91080445af630ef6298e006335062d16"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"57d98d6c-cb97-4cf9-b697-1731495e8bc3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.573305} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.896928,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"32f41600-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"32f41600-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"32f91f10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"32f41600-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} device-1 | {"level":"info","message":"POST /devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696/signaling 200 36ms","method":"POST","requestID":"32f41600-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ","level":"info","message":"auth send jwt","requestID":"f863b147eef548ec4cd2690a0d902d6d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f863b147eef548ec4cd2690a0d902d6d","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1015c5b0-bfb5-4042-958a-30800ebd803c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.6059792} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6","requestID":"f863b147eef548ec4cd2690a0d902d6d"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.937949,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"32f91f10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"32f91f10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"32f91f10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.70026,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} device-1 | {"level":"info","message":"GET /peerconnections/7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b 200 9ms","method":"GET","requestID":"32f91f10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/peerconnections/7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f863b147eef548ec4cd2690a0d902d6d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240457,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f863b147eef548ec4cd2690a0d902d6d","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6","requestID":"f863b147eef548ec4cd2690a0d902d6d"} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6 HTTP/1.1","status": "200","body_bytes_sent":"883","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f863b147eef548ec4cd2690a0d902d6d"} experiment-1 | {"level":"info","message":"GET /experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6 200 13ms","method":"GET","requestID":"f863b147eef548ec4cd2690a0d902d6d","responseTime":13,"status":200,"url":"/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 60ms","method":"POST","requestID":"91080445af630ef6298e006335062d16","responseTime":60,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.084","http_referrer":"","http_user_agent":"node-fetch","requestID":"91080445af630ef6298e006335062d16"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"33007210-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dba13832-53c4-441e-8c40-9551f3f91632","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.6538372} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.296864,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"33007210-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"33007210-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"33007210-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb/signaling 200 9ms","method":"POST","requestID":"33007210-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"33021fc0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a669b67f-797a-445a-95ac-cb0991deb86a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.664377} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.127302,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"33021fc0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"33021fc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"33021fc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696/signaling 200 8ms","method":"POST","requestID":"33021fc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ","level":"info","message":"auth send jwt","requestID":"384bfe95c294d8c9cad6d752d8d7f01e"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"384bfe95c294d8c9cad6d752d8d7f01e","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6","requestID":"384bfe95c294d8c9cad6d752d8d7f01e"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.768895,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"384bfe95c294d8c9cad6d752d8d7f01e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240457,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"384bfe95c294d8c9cad6d752d8d7f01e","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6","requestID":"384bfe95c294d8c9cad6d752d8d7f01e"} experiment-1 | {"level":"info","message":"GET /experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6 200 10ms","method":"GET","requestID":"384bfe95c294d8c9cad6d752d8d7f01e","responseTime":10,"status":200,"url":"/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6"} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6 HTTP/1.1","status": "200","body_bytes_sent":"885","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"384bfe95c294d8c9cad6d752d8d7f01e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ","level":"info","message":"auth send jwt","requestID":"5d9cfe97c66d3c56793f9eecf62fc305"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5d9cfe97c66d3c56793f9eecf62fc305","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6","requestID":"5d9cfe97c66d3c56793f9eecf62fc305"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.021395,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5d9cfe97c66d3c56793f9eecf62fc305","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240457,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5d9cfe97c66d3c56793f9eecf62fc305","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6"},"level":"info","message":"Attempting to finish experiment","requestID":"5d9cfe97c66d3c56793f9eecf62fc305"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"331384e0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.642984,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"331384e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240457,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"331384e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/9b311815-e287-44b0-aa14-b4c92c7e0e57?id=1e03f5ad-fb6b-47eb-841c-ebd5faa8be0b HTTP/1.1","status": "101","body_bytes_sent":"0","request_time":"0.307","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"6bfe3b26847c266face51390ca726ad4"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"1e03f5ad-fb6b-47eb-841c-ebd5faa8be0b\" in room \"http://localhost/rooms/9b311815-e287-44b0-aa14-b4c92c7e0e57\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"1e03f5ad-fb6b-47eb-841c-ebd5faa8be0b\" from room \"http://localhost/rooms/9b311815-e287-44b0-aa14-b4c92c7e0e57\", code: 1006, reason: "} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/9b311815-e287-44b0-aa14-b4c92c7e0e57?id=9b921119-1da5-49b8-aaad-e97ba8e2c087 HTTP/1.1","status": "101","body_bytes_sent":"2","request_time":"0.308","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"02068c0a820a7a9aa6af2f42eb659ef6"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"9b921119-1da5-49b8-aaad-e97ba8e2c087\" in room \"http://localhost/rooms/9b311815-e287-44b0-aa14-b4c92c7e0e57\""} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b","device":"90913d4a-aeea-4a7d-9f7c-77a738bcd696","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"9b921119-1da5-49b8-aaad-e97ba8e2c087\" from room \"http://localhost/rooms/9b311815-e287-44b0-aa14-b4c92c7e0e57\", code: 1005, reason: "} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"457efcfb-64e4-4773-967e-a00221e87bcb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.7905502} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a3691668-5d75-425b-9cc9-53af7b088d80","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.7907948} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c8b11566e76a05073b1b25743525b78b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c8b11566e76a05073b1b25743525b78b","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"614eead40624d81ce8ef81bca9dde45a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"614eead40624d81ce8ef81bca9dde45a","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b"}}},"level":"info","message":"received a callback","requestID":"c8b11566e76a05073b1b25743525b78b"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"331384e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b"}}},"level":"info","message":"received a callback","requestID":"614eead40624d81ce8ef81bca9dde45a"} device-1 | {"data":{"peerconnection":"7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"331384e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b 204 47ms","method":"DELETE","requestID":"331384e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":47,"status":204,"url":"/peerconnections/7dfc27f2-c38a-41e6-bb32-f4fc1d4ccb5b"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6"},"level":"info","message":"Successfully finished experiment","requestID":"5d9cfe97c66d3c56793f9eecf62fc305"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"331d21d0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f1a52e8-2633-41ec-b812-622ac7b3c8eb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f8ede846-ab8f-4772-ad6b-23d07495e74e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.8416264} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.885053,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"331d21d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"331d21d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"331d21d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb/signaling 200 9ms","method":"POST","requestID":"331d21d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"331f92d0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d858e5e8-f360-4ae9-9d05-8a96fa3d058b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.8483515} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F12dea8cc-a9f5-49d2-ad89-a11ed58773f6': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F12dea8cc-a9f5-49d2-ad89-a11ed58773f6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"040da93d-c517-4f88-ba82-a2f71e1061b4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.848838} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","method":"POST","requestID":"5d9cfe97c66d3c56793f9eecf62fc305","responseTime":19,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90913d4a-aeea-4a7d-9f7c-77a738bcd696","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a87ac421-6b9a-4fcc-b9a5-9303fb1a792a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240457.8583453} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.379384,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"331f92d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"331f92d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"331f92d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696/signaling 200 11ms","method":"POST","requestID":"331f92d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6","requestID":"5d9cfe97c66d3c56793f9eecf62fc305"} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.192","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5d9cfe97c66d3c56793f9eecf62fc305"} experiment-1 | {"level":"info","message":"DELETE /experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6 204 189ms","method":"DELETE","requestID":"5d9cfe97c66d3c56793f9eecf62fc305","responseTime":189,"status":204,"url":"/experiments/12dea8cc-a9f5-49d2-ad89-a11ed58773f6"} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1443","request_time":"2.209","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"1708bb87b70bea627e5e1fc224541f6c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 162ms","method":"POST","requestID":"c8b11566e76a05073b1b25743525b78b","responseTime":162,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.164","http_referrer":"","http_user_agent":"node-fetch","requestID":"c8b11566e76a05073b1b25743525b78b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 162ms","method":"POST","requestID":"614eead40624d81ce8ef81bca9dde45a","responseTime":162,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.165","http_referrer":"","http_user_agent":"node-fetch","requestID":"614eead40624d81ce8ef81bca9dde45a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ","level":"info","message":"auth send jwt","requestID":"2aa59be5bb9f0b0342f5916f3dd0a310"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2aa59be5bb9f0b0342f5916f3dd0a310","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"2aa59be5bb9f0b0342f5916f3dd0a310"} gateway-1 | {"time_local":"18/Jun/2025:09:54:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1766","request_time":"0.923","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a43b8ea7a57b788ac715b85a250999b1"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.858191,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:17Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2aa59be5bb9f0b0342f5916f3dd0a310","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240457,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1N30.08GnPhloQE0_bvReC8yu3fTfUSSbiQ-ARGVrndMdDzQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2aa59be5bb9f0b0342f5916f3dd0a310","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/6f1a52e8-2633-41ec-b812-622ac7b3c8eb' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"083028a4-4e43-4fd6-a389-72e9b1f9ace0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240458.0056498} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2aa59be5bb9f0b0342f5916f3dd0a310","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/90913d4a-aeea-4a7d-9f7c-77a738bcd696' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a64940a8-0fd4-4739-b08c-0c5ce1047afd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240458.0102513} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"2aa59be5bb9f0b0342f5916f3dd0a310","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"5d981472-e36e-4530-8ce8-8670c5e81c9f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240458.043487} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d338f532-5a2f-413f-853c-101f0d029985","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240458.043711} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"2aa59be5bb9f0b0342f5916f3dd0a310","responseTime":37,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:18.043469133Z"}]},"request_id":"e5c5d4ab-7e4f-428d-ad79-af597ea7448c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240458.0489867} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2aa59be5bb9f0b0342f5916f3dd0a310","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"2aa59be5bb9f0b0342f5916f3dd0a310"} gateway-1 | {"time_local":"18/Jun/2025:09:54:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.097","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2aa59be5bb9f0b0342f5916f3dd0a310"} device-1 | {"level":"info","message":"POST /devices? 201 92ms","method":"POST","requestID":"2aa59be5bb9f0b0342f5916f3dd0a310","responseTime":92,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OH0.EraaBmBm8c0GvVVYSAFGnaMRu-9S85hIGd7wpz3A8K4","level":"info","message":"auth send jwt","requestID":"bf3d8c3d64d503615323496e05be782d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bf3d8c3d64d503615323496e05be782d","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"bf3d8c3d64d503615323496e05be782d"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:18Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.684555,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:18Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"bf3d8c3d64d503615323496e05be782d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240458,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OH0.EraaBmBm8c0GvVVYSAFGnaMRu-9S85hIGd7wpz3A8K4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"bf3d8c3d64d503615323496e05be782d","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"59ec69ac-b10c-4d63-bb2b-385c98f8bd8f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240458.099047} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"bf3d8c3d64d503615323496e05be782d","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3a202bad-a843-42c4-b7b6-ab75816e4ffb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240458.104096} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"bf3d8c3d64d503615323496e05be782d","responseTime":28,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"81f3e7cb-6cac-414a-8752-fea431d00322","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240458.141263} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b98be4ac-cc7d-4232-93f0-903d31804252","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240458.141486} authorization-1 | {"level":"info","message":"POST /relations/update 200 39ms","method":"POST","requestID":"bf3d8c3d64d503615323496e05be782d","responseTime":39,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:18.141243348Z"}]},"request_id":"0b33deee-94b1-49e2-96ef-9c5958128df3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240458.1457753} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"bf3d8c3d64d503615323496e05be782d","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"bf3d8c3d64d503615323496e05be782d"} gateway-1 | {"time_local":"18/Jun/2025:09:54:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.096","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bf3d8c3d64d503615323496e05be782d"} device-1 | {"level":"info","message":"POST /devices? 201 92ms","method":"POST","requestID":"bf3d8c3d64d503615323496e05be782d","responseTime":92,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg","level":"info","message":"auth send jwt","requestID":"2346156223d24ce7a4e789cdb0ad30cd"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2346156223d24ce7a4e789cdb0ad30cd","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"2346156223d24ce7a4e789cdb0ad30cd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg","level":"info","message":"auth send jwt","requestID":"bbc4f4d9ba22a63ddcac30d2b4af9443"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bbc4f4d9ba22a63ddcac30d2b4af9443","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"bbc4f4d9ba22a63ddcac30d2b4af9443"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.915885,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2346156223d24ce7a4e789cdb0ad30cd","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2346156223d24ce7a4e789cdb0ad30cd","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.617057,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"bbc4f4d9ba22a63ddcac30d2b4af9443","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"bbc4f4d9ba22a63ddcac30d2b4af9443","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:18.141243348Z"}]},"request_id":"60efa96b-bebd-4767-83e9-b6f41701f4df","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.1025558} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2346156223d24ce7a4e789cdb0ad30cd","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:18.043469133Z"}]},"request_id":"63aced0e-af3e-4c14-97ea-3ddf79a9f449","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.103125} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"bbc4f4d9ba22a63ddcac30d2b4af9443","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9c1bc93e-bfe1-4e00-8335-989289505042","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.1068928} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"2346156223d24ce7a4e789cdb0ad30cd","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"69e4667b-956b-41af-a930-a38f22f901e2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.1082842} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"bbc4f4d9ba22a63ddcac30d2b4af9443","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:18.043469133Z"}]},"request_id":"5619a7ba-244d-4788-a245-20cec1c3ab6e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.1106503} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"bbc4f4d9ba22a63ddcac30d2b4af9443","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"bbc4f4d9ba22a63ddcac30d2b4af9443"} gateway-1 | {"time_local":"18/Jun/2025:09:54:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/db10bca3-a008-406d-a7b1-a38ab10d9561 HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.022","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"bbc4f4d9ba22a63ddcac30d2b4af9443"} device-1 | {"level":"info","message":"PATCH /devices/db10bca3-a008-406d-a7b1-a38ab10d9561 200 18ms","method":"PATCH","requestID":"bbc4f4d9ba22a63ddcac30d2b4af9443","responseTime":18,"status":200,"url":"/devices/db10bca3-a008-406d-a7b1-a38ab10d9561"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg","level":"info","message":"auth send jwt","requestID":"58b5e2b6d7e11cd4b1ebd3e2769519e8"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"58b5e2b6d7e11cd4b1ebd3e2769519e8","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"58b5e2b6d7e11cd4b1ebd3e2769519e8"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.693109,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"58b5e2b6d7e11cd4b1ebd3e2769519e8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"58b5e2b6d7e11cd4b1ebd3e2769519e8","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:18.141243348Z"}]},"request_id":"61bbc8c2-71cf-421d-a883-35c25859d1bd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.1470518} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2346156223d24ce7a4e789cdb0ad30cd","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"2346156223d24ce7a4e789cdb0ad30cd"} device-1 | {"level":"info","message":"PATCH /devices/207e134b-6ab2-4637-8c8b-608639de1515 200 58ms","method":"PATCH","requestID":"2346156223d24ce7a4e789cdb0ad30cd","responseTime":58,"status":200,"url":"/devices/207e134b-6ab2-4637-8c8b-608639de1515"} gateway-1 | {"time_local":"18/Jun/2025:09:54:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/207e134b-6ab2-4637-8c8b-608639de1515 HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.085","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"2346156223d24ce7a4e789cdb0ad30cd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg","level":"info","message":"auth send jwt","requestID":"91c61f858641027d8a4f818dbd4364c9"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"91c61f858641027d8a4f818dbd4364c9","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"91c61f858641027d8a4f818dbd4364c9"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"58b5e2b6d7e11cd4b1ebd3e2769519e8"} gateway-1 | {"time_local":"18/Jun/2025:09:54:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/db10bca3-a008-406d-a7b1-a38ab10d9561/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.018","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"58b5e2b6d7e11cd4b1ebd3e2769519e8"} device-1 | {"level":"info","message":"POST /devices/db10bca3-a008-406d-a7b1-a38ab10d9561/websocket 200 14ms","method":"POST","requestID":"58b5e2b6d7e11cd4b1ebd3e2769519e8","responseTime":14,"status":200,"url":"/devices/db10bca3-a008-406d-a7b1-a38ab10d9561/websocket"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.746484,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"91c61f858641027d8a4f818dbd4364c9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"91c61f858641027d8a4f818dbd4364c9","responseTime":3,"status":200,"url":"/authorize"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"550103c0-69fb-471b-9028-d3651ce9bd04\" in room \"http://localhost/rooms/c092760d-e65d-45bd-9cd7-4de23a5144e6\"","requestID":"30ec8630-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"c59d36e0-7192-47f5-86db-bf9d8b41eafc\" in room \"http://localhost/rooms/c092760d-e65d-45bd-9cd7-4de23a5144e6\"","requestID":"30ecfb60-4c2a-11f0-b702-8b8a85c3ad9a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"91c61f858641027d8a4f818dbd4364c9"} gateway-1 | {"time_local":"18/Jun/2025:09:54:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/207e134b-6ab2-4637-8c8b-608639de1515/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.036","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"91c61f858641027d8a4f818dbd4364c9"} device-1 | {"level":"info","message":"POST /devices/207e134b-6ab2-4637-8c8b-608639de1515/websocket 200 34ms","method":"POST","requestID":"91c61f858641027d8a4f818dbd4364c9","responseTime":34,"status":200,"url":"/devices/207e134b-6ab2-4637-8c8b-608639de1515/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg","level":"info","message":"auth send jwt","requestID":"6e41167b915c51f6523b73a42bd224ae"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6e41167b915c51f6523b73a42bd224ae","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6e41167b915c51f6523b73a42bd224ae"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.676676,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6e41167b915c51f6523b73a42bd224ae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6e41167b915c51f6523b73a42bd224ae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:18.043469133Z"}]},"request_id":"2ba660b4-9403-4e0a-974e-47f42119dfc5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.2389739} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6e41167b915c51f6523b73a42bd224ae","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6e41167b915c51f6523b73a42bd224ae"} device-1 | {"level":"info","message":"GET /devices/db10bca3-a008-406d-a7b1-a38ab10d9561? 200 34ms","method":"GET","requestID":"6e41167b915c51f6523b73a42bd224ae","responseTime":34,"status":200,"url":"/devices/db10bca3-a008-406d-a7b1-a38ab10d9561?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/db10bca3-a008-406d-a7b1-a38ab10d9561? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6e41167b915c51f6523b73a42bd224ae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg","level":"info","message":"auth send jwt","requestID":"614b8070778fc8ec2d9102213620a03c"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"614b8070778fc8ec2d9102213620a03c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"614b8070778fc8ec2d9102213620a03c"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.738091,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"614b8070778fc8ec2d9102213620a03c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"614b8070778fc8ec2d9102213620a03c","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:18.141243348Z"}]},"request_id":"a6f4ee26-8aa7-464a-966d-0c453b9d4cba","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.2545655} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"614b8070778fc8ec2d9102213620a03c","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"614b8070778fc8ec2d9102213620a03c"} device-1 | {"level":"info","message":"GET /devices/207e134b-6ab2-4637-8c8b-608639de1515? 200 35ms","method":"GET","requestID":"614b8070778fc8ec2d9102213620a03c","responseTime":35,"status":200,"url":"/devices/207e134b-6ab2-4637-8c8b-608639de1515?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/207e134b-6ab2-4637-8c8b-608639de1515? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"614b8070778fc8ec2d9102213620a03c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg","level":"info","message":"auth send jwt","requestID":"8c6007251e756b9177db665805e6ecf6"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8c6007251e756b9177db665805e6ecf6","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"8c6007251e756b9177db665805e6ecf6"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.677795,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8c6007251e756b9177db665805e6ecf6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8c6007251e756b9177db665805e6ecf6","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7"},"level":"info","message":"Attempting to run experiment","requestID":"8c6007251e756b9177db665805e6ecf6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7"},"level":"info","message":"Attempting to book experiment","requestID":"8c6007251e756b9177db665805e6ecf6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7"},"level":"info","message":"Successfully booked experiment","requestID":"8c6007251e756b9177db665805e6ecf6"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"340278c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"34029fd0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.72612,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"340278c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"340278c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.588946,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"34029fd0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"34029fd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:18.043469133Z"}]},"request_id":"50c2b3dc-f048-4373-8295-f1d6fc13fbb7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.3480988} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"340278c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:18.141243348Z"}]},"request_id":"1960ecf3-1ca3-48a1-a4e2-05c6814b1316","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.3491938} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"34029fd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"340278c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/db10bca3-a008-406d-a7b1-a38ab10d9561? 200 37ms","method":"GET","requestID":"340278c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/db10bca3-a008-406d-a7b1-a38ab10d9561?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"34029fd0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/207e134b-6ab2-4637-8c8b-608639de1515? 200 37ms","method":"GET","requestID":"34029fd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/207e134b-6ab2-4637-8c8b-608639de1515?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7"},"level":"info","message":"Setting up experiment","requestID":"8c6007251e756b9177db665805e6ecf6"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"8c6007251e756b9177db665805e6ecf6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"8c6007251e756b9177db665805e6ecf6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7"},"level":"info","message":"Successfully locked booking for experiment","requestID":"8c6007251e756b9177db665805e6ecf6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7"},"level":"info","message":"Successfully set up experiment","requestID":"8c6007251e756b9177db665805e6ecf6"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"340bc790-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"340c15b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7"},"level":"info","message":"Successfully running experiment","requestID":"8c6007251e756b9177db665805e6ecf6"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.706213,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.562042,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"340bc790-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 25ms","method":"POST","requestID":"340bc790-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":25,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"340c15b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"340c15b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:18.043469133Z"}]},"request_id":"0b172eb7-26f9-4b54-bf1d-5525103a6d83","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.4319644} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"340bc790-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:18.141243348Z"}]},"request_id":"8b33e34f-10c8-4a2a-915f-a48c11ef2cdd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.4326003} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"340c15b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"340bc790-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/db10bca3-a008-406d-a7b1-a38ab10d9561? 200 36ms","method":"GET","requestID":"340bc790-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/db10bca3-a008-406d-a7b1-a38ab10d9561?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"340c15b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/207e134b-6ab2-4637-8c8b-608639de1515? 200 34ms","method":"GET","requestID":"340c15b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/207e134b-6ab2-4637-8c8b-608639de1515?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3411bb00-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdc8feb6a-de59-4f65-99f0-1c9e740869e7#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdc8feb6a-de59-4f65-99f0-1c9e740869e7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"5e0f1e34-c74f-4b06-a0f5-642d25e0c3d9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.442169} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2d2a35d0-c4de-4537-9ac7-0cb8b7242ba5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.4422925} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","method":"POST","requestID":"8c6007251e756b9177db665805e6ecf6","responseTime":17,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"878106bd-5381-4fd0-a577-25bfc5e990dc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.445059} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.656619,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3411bb00-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"3411bb00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"8c6007251e756b9177db665805e6ecf6"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3411bb00-4c2a-11f0-a085-a5c7b3a0c4e5"} gateway-1 | {"time_local":"18/Jun/2025:09:54:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"816","request_time":"0.167","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8c6007251e756b9177db665805e6ecf6"} experiment-1 | {"level":"info","message":"POST /experiments? 201 163ms","method":"POST","requestID":"8c6007251e756b9177db665805e6ecf6","responseTime":163,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"POST /devices/db10bca3-a008-406d-a7b1-a38ab10d9561/signaling 200 10ms","method":"POST","requestID":"3411bb00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/db10bca3-a008-406d-a7b1-a38ab10d9561/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"34173940-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg","level":"info","message":"auth send jwt","requestID":"68abf072ad8b30f674ef6a6d0485b800"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"68abf072ad8b30f674ef6a6d0485b800","responseTime":26,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"68abf072ad8b30f674ef6a6d0485b800"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f84806f0-8d18-4aa9-8ec0-d4057af7414e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.4815347} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.386196,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.760724,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"34173940-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"34173940-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"68abf072ad8b30f674ef6a6d0485b800","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"68abf072ad8b30f674ef6a6d0485b800","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"34173940-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/207e134b-6ab2-4637-8c8b-608639de1515/signaling 200 9ms","method":"POST","requestID":"34173940-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/207e134b-6ab2-4637-8c8b-608639de1515/signaling"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:18.043469133Z"}]},"request_id":"2f86ba35-cebd-4348-bf36-4ac1a38762a9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.4872139} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"68abf072ad8b30f674ef6a6d0485b800","responseTime":3,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"8c6007251e756b9177db665805e6ecf6"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"34195c20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"34198330-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"68abf072ad8b30f674ef6a6d0485b800"} gateway-1 | {"time_local":"18/Jun/2025:09:54:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/db10bca3-a008-406d-a7b1-a38ab10d9561? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"68abf072ad8b30f674ef6a6d0485b800"} device-1 | {"level":"info","message":"GET /devices/db10bca3-a008-406d-a7b1-a38ab10d9561? 200 14ms","method":"GET","requestID":"68abf072ad8b30f674ef6a6d0485b800","responseTime":14,"status":200,"url":"/devices/db10bca3-a008-406d-a7b1-a38ab10d9561?"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.704468,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"34195c20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"34195c20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.857493,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"34198330-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg","level":"info","message":"auth send jwt","requestID":"45baa992b979f6f4cbf560fce5c76965"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"34198330-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"45baa992b979f6f4cbf560fce5c76965","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"45baa992b979f6f4cbf560fce5c76965"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:18.043469133Z"}]},"request_id":"57d7fcd7-1406-4587-8b8d-936284a215c1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.5252345} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"34195c20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:18.141243348Z"}]},"request_id":"246947c7-cd13-49da-a20b-2d7fbbef1b8f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.5263608} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"34198330-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"34195c20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.754727,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} device-1 | {"level":"info","message":"GET /devices/db10bca3-a008-406d-a7b1-a38ab10d9561? 200 39ms","method":"GET","requestID":"34195c20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":200,"url":"/devices/db10bca3-a008-406d-a7b1-a38ab10d9561?"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"45baa992b979f6f4cbf560fce5c76965","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"45baa992b979f6f4cbf560fce5c76965","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"34198330-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/207e134b-6ab2-4637-8c8b-608639de1515? 200 42ms","method":"GET","requestID":"34198330-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":42,"status":200,"url":"/devices/207e134b-6ab2-4637-8c8b-608639de1515?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:18.141243348Z"}]},"request_id":"67a0cf51-50cb-4d24-879d-ea16adab0b8b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.53404} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7"},"level":"info","message":"Building connection plan","requestID":"8c6007251e756b9177db665805e6ecf6"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"1bb96cf2-747e-4fa2-828c-6811c0100ff7"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"9eec8d18-ae21-4cdf-b988-3169790de735"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"95ff4f00-6d24-4ee0-b0cb-56fff14a6f15"}]},"level":"info","message":"Built pairwise service configurations","requestID":"8c6007251e756b9177db665805e6ecf6"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"45baa992b979f6f4cbf560fce5c76965","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"45baa992b979f6f4cbf560fce5c76965"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"34206100-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"34206100-4c2a-11f0-b702-8b8a85c3ad9a"} device-1 | {"level":"info","message":"GET /devices/207e134b-6ab2-4637-8c8b-608639de1515? 200 13ms","method":"GET","requestID":"45baa992b979f6f4cbf560fce5c76965","responseTime":13,"status":200,"url":"/devices/207e134b-6ab2-4637-8c8b-608639de1515?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/207e134b-6ab2-4637-8c8b-608639de1515? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"45baa992b979f6f4cbf560fce5c76965"} forwarding-1 | {"level":"info","message":"POST /rooms 201 1ms","method":"POST","requestID":"34206100-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":1,"status":201,"url":"/rooms"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/dfd2b083-2806-46da-a98a-70e9c0e426d9?id=c733640c-ed0c-458c-b207-16900c7a8633","ws://localhost/rooms/dfd2b083-2806-46da-a98a-70e9c0e426d9?id=ae39cbf1-1978-4f05-930a-194fa8212e57"]},"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"8c6007251e756b9177db665805e6ecf6"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"3420fd40-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.734634,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3420fd40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"3420fd40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"84a2b030-639e-4b9d-ad3b-468e5f7a33f4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.5755312} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"62494931-4f8e-402f-8b10-4f42ef221cff","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.5758026} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"3420fd40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"3420fd40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"3420fd40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/905ebf5b-7340-45b1-8ac7-3278dc6c204a'","requestID":"3420fd40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/905ebf5b-7340-45b1-8ac7-3278dc6c204a'","requestID":"3420fd40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"3420fd40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 76ms","method":"POST","requestID":"3420fd40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":76,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"3420fd40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/905ebf5b-7340-45b1-8ac7-3278dc6c204a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"905ebf5b-7340-45b1-8ac7-3278dc6c204a","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"342f0700-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"c733640c-ed0c-458c-b207-16900c7a8633\" in room \"http://localhost/rooms/dfd2b083-2806-46da-a98a-70e9c0e426d9\"","requestID":"342f0700-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"342f0700-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"342f5520-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"25cf498fe6ca09531002939a69d1324b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"25cf498fe6ca09531002939a69d1324b","responseTime":1,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"ae39cbf1-1978-4f05-930a-194fa8212e57\" in room \"http://localhost/rooms/dfd2b083-2806-46da-a98a-70e9c0e426d9\"","requestID":"342f5520-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"342f5520-4c2a-11f0-b702-8b8a85c3ad9a"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/905ebf5b-7340-45b1-8ac7-3278dc6c204a"}}},"level":"info","message":"received a callback","requestID":"25cf498fe6ca09531002939a69d1324b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"25cf498fe6ca09531002939a69d1324b","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch","requestID":"25cf498fe6ca09531002939a69d1324b"} device-1 | {"data":{"peerconnection":"905ebf5b-7340-45b1-8ac7-3278dc6c204a","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"8c6007251e756b9177db665805e6ecf6"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3435bdc0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} device-1 | {"data":{"peerconnection":"905ebf5b-7340-45b1-8ac7-3278dc6c204a","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"97cfd1db-a02b-43a0-ad2a-bc4cbb65a92c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.680925} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.438058,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3435bdc0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"3435bdc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/905ebf5b-7340-45b1-8ac7-3278dc6c204a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"905ebf5b-7340-45b1-8ac7-3278dc6c204a","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3435bdc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/db10bca3-a008-406d-a7b1-a38ab10d9561/signaling 200 15ms","method":"POST","requestID":"3435bdc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":15,"status":200,"url":"/devices/db10bca3-a008-406d-a7b1-a38ab10d9561/signaling"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"7b587d90ff3b35a2275f3e40a56e0c86","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7b587d90ff3b35a2275f3e40a56e0c86","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"343855d0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/905ebf5b-7340-45b1-8ac7-3278dc6c204a"}}},"level":"info","message":"received a callback","requestID":"7b587d90ff3b35a2275f3e40a56e0c86"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5198bf87-d76a-4ab3-8399-15f812b695de","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.6978102} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.46773,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"343855d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"34394030-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"343855d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"343855d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/207e134b-6ab2-4637-8c8b-608639de1515/signaling 200 10ms","method":"POST","requestID":"343855d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/207e134b-6ab2-4637-8c8b-608639de1515/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F905ebf5b-7340-45b1-8ac7-3278dc6c204a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6de1a75f-9682-4ba3-a4ed-bfabd0532e7f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.7033622} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.508411,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/905ebf5b-7340-45b1-8ac7-3278dc6c204a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"34394030-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/905ebf5b-7340-45b1-8ac7-3278dc6c204a","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"34394030-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"34394030-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/905ebf5b-7340-45b1-8ac7-3278dc6c204a 200 8ms","method":"GET","requestID":"34394030-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/peerconnections/905ebf5b-7340-45b1-8ac7-3278dc6c204a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"7b587d90ff3b35a2275f3e40a56e0c86","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"7b587d90ff3b35a2275f3e40a56e0c86"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"343cc2a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7fbc0619-6f4d-4797-a3ed-b7fafba252d2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.7267349} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.736896,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"343cc2a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"343cc2a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"343cc2a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/207e134b-6ab2-4637-8c8b-608639de1515/signaling 200 8ms","method":"POST","requestID":"343cc2a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/207e134b-6ab2-4637-8c8b-608639de1515/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"343e7050-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f46f9f02-682f-47ab-ad41-76422fb24b59","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.7374861} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.086959,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg","level":"info","message":"auth send jwt","requestID":"4cafb7cbb979e8a2bfd96b2453eeb39e"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"343e7050-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4cafb7cbb979e8a2bfd96b2453eeb39e","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"343e7050-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7","requestID":"4cafb7cbb979e8a2bfd96b2453eeb39e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"343e7050-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/db10bca3-a008-406d-a7b1-a38ab10d9561/signaling 200 9ms","method":"POST","requestID":"343e7050-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/db10bca3-a008-406d-a7b1-a38ab10d9561/signaling"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.697558,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4cafb7cbb979e8a2bfd96b2453eeb39e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4cafb7cbb979e8a2bfd96b2453eeb39e","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7","requestID":"4cafb7cbb979e8a2bfd96b2453eeb39e"} gateway-1 | {"time_local":"18/Jun/2025:09:54:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7 HTTP/1.1","status": "200","body_bytes_sent":"889","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4cafb7cbb979e8a2bfd96b2453eeb39e"} experiment-1 | {"level":"info","message":"GET /experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7 200 13ms","method":"GET","requestID":"4cafb7cbb979e8a2bfd96b2453eeb39e","responseTime":13,"status":200,"url":"/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg","level":"info","message":"auth send jwt","requestID":"a647e5f28fce07bda60a7464d1da8faf"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a647e5f28fce07bda60a7464d1da8faf","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7","requestID":"a647e5f28fce07bda60a7464d1da8faf"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.771315,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a647e5f28fce07bda60a7464d1da8faf","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a647e5f28fce07bda60a7464d1da8faf","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7"},"level":"info","message":"Attempting to finish experiment","requestID":"a647e5f28fce07bda60a7464d1da8faf"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"34435250-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.584198,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/905ebf5b-7340-45b1-8ac7-3278dc6c204a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"34435250-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/905ebf5b-7340-45b1-8ac7-3278dc6c204a","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"34435250-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:54:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/dfd2b083-2806-46da-a98a-70e9c0e426d9?id=ae39cbf1-1978-4f05-930a-194fa8212e57 HTTP/1.1","status": "101","body_bytes_sent":"0","request_time":"0.144","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"896865153cded697ae1131b97ed5906a"} gateway-1 | {"time_local":"18/Jun/2025:09:54:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/dfd2b083-2806-46da-a98a-70e9c0e426d9?id=c733640c-ed0c-458c-b207-16900c7a8633 HTTP/1.1","status": "101","body_bytes_sent":"0","request_time":"0.144","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"7085783a7d9f30f361ecbd50cc74fa36"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"ae39cbf1-1978-4f05-930a-194fa8212e57\" in room \"http://localhost/rooms/dfd2b083-2806-46da-a98a-70e9c0e426d9\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"ae39cbf1-1978-4f05-930a-194fa8212e57\" from room \"http://localhost/rooms/dfd2b083-2806-46da-a98a-70e9c0e426d9\", code: 1006, reason: "} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"c733640c-ed0c-458c-b207-16900c7a8633\" in room \"http://localhost/rooms/dfd2b083-2806-46da-a98a-70e9c0e426d9\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"c733640c-ed0c-458c-b207-16900c7a8633\" from room \"http://localhost/rooms/dfd2b083-2806-46da-a98a-70e9c0e426d9\", code: 1006, reason: "} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/905ebf5b-7340-45b1-8ac7-3278dc6c204a' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/905ebf5b-7340-45b1-8ac7-3278dc6c204a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"905ebf5b-7340-45b1-8ac7-3278dc6c204a","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c5bc8c30ccad38cae3235f8742952ffd","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c5bc8c30ccad38cae3235f8742952ffd","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"1ff7f8db49d303c94da2fb336399640f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1ff7f8db49d303c94da2fb336399640f","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/905ebf5b-7340-45b1-8ac7-3278dc6c204a"}}},"level":"info","message":"received a callback","requestID":"c5bc8c30ccad38cae3235f8742952ffd"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F905ebf5b-7340-45b1-8ac7-3278dc6c204a': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F905ebf5b-7340-45b1-8ac7-3278dc6c204a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"266cbac7-8e9a-41c3-b86f-fef0017ae0bb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.7821538} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/905ebf5b-7340-45b1-8ac7-3278dc6c204a"}}},"level":"info","message":"received a callback","requestID":"1ff7f8db49d303c94da2fb336399640f"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8fd1d5cc-8ea4-45c3-9faf-4b4923a38151","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.7823606} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","method":"POST","requestID":"34435250-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"905ebf5b-7340-45b1-8ac7-3278dc6c204a","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"34435250-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/905ebf5b-7340-45b1-8ac7-3278dc6c204a 204 61ms","method":"DELETE","requestID":"34435250-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":61,"status":204,"url":"/peerconnections/905ebf5b-7340-45b1-8ac7-3278dc6c204a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7"},"level":"info","message":"Successfully finished experiment","requestID":"a647e5f28fce07bda60a7464d1da8faf"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3452e2b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F207e134b-6ab2-4637-8c8b-608639de1515","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"eff46e76-1331-41aa-9428-7a7387b8d5c8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.871473} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.328833,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3452e2b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"3452e2b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3452e2b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/207e134b-6ab2-4637-8c8b-608639de1515/signaling 200 9ms","method":"POST","requestID":"3452e2b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/207e134b-6ab2-4637-8c8b-608639de1515/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdc8feb6a-de59-4f65-99f0-1c9e740869e7': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdc8feb6a-de59-4f65-99f0-1c9e740869e7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"7170db30-e98d-4484-864b-267abf158e1d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.8784797} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"34549060-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9f2c81d1-63ed-445b-bf37-85abad3a0f5f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.878848} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"a647e5f28fce07bda60a7464d1da8faf","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb10bca3-a008-406d-a7b1-a38ab10d9561","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2bb448c4-deed-4ee4-9d7f-6a118a35638b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.9077623} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.576729,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"34549060-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"34549060-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"34549060-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/db10bca3-a008-406d-a7b1-a38ab10d9561/signaling 200 34ms","method":"POST","requestID":"34549060-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/db10bca3-a008-406d-a7b1-a38ab10d9561/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7","requestID":"a647e5f28fce07bda60a7464d1da8faf"} gateway-1 | {"time_local":"18/Jun/2025:09:54:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.197","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a647e5f28fce07bda60a7464d1da8faf"} experiment-1 | {"level":"info","message":"DELETE /experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7 204 195ms","method":"DELETE","requestID":"a647e5f28fce07bda60a7464d1da8faf","responseTime":195,"status":204,"url":"/experiments/dc8feb6a-de59-4f65-99f0-1c9e740869e7"} gateway-1 | {"time_local":"18/Jun/2025:09:54:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1766","request_time":"0.794","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"84d25987884846fc926146644edc3335"} gateway-1 | {"time_local":"18/Jun/2025:09:54:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1767","request_time":"0.764","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"245e6506b82af1f785b04fec093e490f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 171ms","method":"POST","requestID":"c5bc8c30ccad38cae3235f8742952ffd","responseTime":171,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.174","http_referrer":"","http_user_agent":"node-fetch","requestID":"c5bc8c30ccad38cae3235f8742952ffd"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 171ms","method":"POST","requestID":"1ff7f8db49d303c94da2fb336399640f","responseTime":171,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.175","http_referrer":"","http_user_agent":"node-fetch","requestID":"1ff7f8db49d303c94da2fb336399640f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg","level":"info","message":"auth send jwt","requestID":"e1c0b137708e37610e00b92ad68a83bc"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e1c0b137708e37610e00b92ad68a83bc","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"e1c0b137708e37610e00b92ad68a83bc"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/db10bca3-a008-406d-a7b1-a38ab10d9561' closed"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.9425,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:19Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e1c0b137708e37610e00b92ad68a83bc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240459,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ1OX0.ZD0Ct_tK6qxhulA58RqJVgufnI2tN1oLEV2pMCrowRg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"e1c0b137708e37610e00b92ad68a83bc","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/207e134b-6ab2-4637-8c8b-608639de1515' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5549d53-d9ca-48dd-9d26-9d96fbf98e47","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4bb7fe23-7928-4c35-94f5-c652caf32af5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.980932} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e1c0b137708e37610e00b92ad68a83bc","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0ecf8588-802d-4692-9feb-19df88c80b71","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.9863904} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"e1c0b137708e37610e00b92ad68a83bc","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5549d53-d9ca-48dd-9d26-9d96fbf98e47","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"413417b1-d32d-420a-a06f-27a3632fd30a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.9967113} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"76cd1dc0-26da-4583-b7cd-e8c3dcb13d08","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240459.996964} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"e1c0b137708e37610e00b92ad68a83bc","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5549d53-d9ca-48dd-9d26-9d96fbf98e47","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5549d53-d9ca-48dd-9d26-9d96fbf98e47","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:19.996694796Z"}]},"request_id":"ee6cc1ef-40db-4ada-b829-1608e0a952dc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.001934} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e1c0b137708e37610e00b92ad68a83bc","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"e1c0b137708e37610e00b92ad68a83bc"} gateway-1 | {"time_local":"18/Jun/2025:09:54:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e1c0b137708e37610e00b92ad68a83bc"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"e1c0b137708e37610e00b92ad68a83bc","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY","level":"info","message":"auth send jwt","requestID":"b14000c78ecfa957210fd2d1d15537c6"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b14000c78ecfa957210fd2d1d15537c6","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"b14000c78ecfa957210fd2d1d15537c6"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.8199,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b14000c78ecfa957210fd2d1d15537c6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240460,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"b14000c78ecfa957210fd2d1d15537c6","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3f2b2e3b-f9bd-4316-89bb-7b026453a1a5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"54dd02b2-19a8-4c71-b14c-d542bc94eedd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.027027} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"b14000c78ecfa957210fd2d1d15537c6","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fb62a703-4a5a-4ed4-9cdb-717991600035","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.0332868} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"b14000c78ecfa957210fd2d1d15537c6","responseTime":5,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3f2b2e3b-f9bd-4316-89bb-7b026453a1a5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"3963c43e-64fd-41ef-a7b6-7e7d7bde6b62","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.0512486} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8b43730b-e994-4cb1-87ab-717708bb960d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.0514395} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"b14000c78ecfa957210fd2d1d15537c6","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3f2b2e3b-f9bd-4316-89bb-7b026453a1a5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3f2b2e3b-f9bd-4316-89bb-7b026453a1a5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.051227466Z"}]},"request_id":"90766d85-eef1-4b67-b52b-efc8f7d61d0c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.0566826} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"b14000c78ecfa957210fd2d1d15537c6","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"b14000c78ecfa957210fd2d1d15537c6"} gateway-1 | {"time_local":"18/Jun/2025:09:54:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b14000c78ecfa957210fd2d1d15537c6"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"b14000c78ecfa957210fd2d1d15537c6","responseTime":50,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY","level":"info","message":"auth send jwt","requestID":"b05614b4bc89a2ffbb1bf607e27f7b7d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b05614b4bc89a2ffbb1bf607e27f7b7d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"b05614b4bc89a2ffbb1bf607e27f7b7d"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.017698,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b05614b4bc89a2ffbb1bf607e27f7b7d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240460,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"b05614b4bc89a2ffbb1bf607e27f7b7d","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe704736e-f9a4-4f51-b4a7-8245eaeedec4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"22ea7178-fc98-4436-ac54-985e58444b74","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.1473405} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"b05614b4bc89a2ffbb1bf607e27f7b7d","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"531d3368-31d2-40ed-a7bd-b46b62c29f8f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.1520586} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"b05614b4bc89a2ffbb1bf607e27f7b7d","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe704736e-f9a4-4f51-b4a7-8245eaeedec4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"eff02704-7a04-4513-a8c2-11b04cbd6fd4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.160794} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"69278b17-6e3d-478c-bc49-d967040c94f9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.160943} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"b05614b4bc89a2ffbb1bf607e27f7b7d","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe704736e-f9a4-4f51-b4a7-8245eaeedec4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe704736e-f9a4-4f51-b4a7-8245eaeedec4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.160771564Z"}]},"request_id":"1371fba2-4546-4368-8787-11b00de3d584","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.1644878} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b05614b4bc89a2ffbb1bf607e27f7b7d","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"b05614b4bc89a2ffbb1bf607e27f7b7d"} gateway-1 | {"time_local":"18/Jun/2025:09:54:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.105","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b05614b4bc89a2ffbb1bf607e27f7b7d"} device-1 | {"level":"info","message":"POST /devices? 201 100ms","method":"POST","requestID":"b05614b4bc89a2ffbb1bf607e27f7b7d","responseTime":100,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY","level":"info","message":"auth send jwt","requestID":"81a662413165f5939cfc3478b8fce366"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"81a662413165f5939cfc3478b8fce366","responseTime":26,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"81a662413165f5939cfc3478b8fce366"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.754071,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"81a662413165f5939cfc3478b8fce366","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240460,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"81a662413165f5939cfc3478b8fce366","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc982567d-8829-4cc1-b61f-411df27b5250","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"11b5233a-c7db-4bfb-9408-bf07b16000f1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.208673} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"81a662413165f5939cfc3478b8fce366","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"053f77f3-c445-4fbb-9551-72e2b7f81208","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.2123172} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"81a662413165f5939cfc3478b8fce366","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc982567d-8829-4cc1-b61f-411df27b5250","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"4dc0904f-0be5-40dc-8eb5-b7d418298e61","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.241432} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9cf722e7-c736-4f06-9a6d-702a1646a7fe","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.2417912} authorization-1 | {"level":"info","message":"POST /relations/update 200 32ms","method":"POST","requestID":"81a662413165f5939cfc3478b8fce366","responseTime":32,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc982567d-8829-4cc1-b61f-411df27b5250","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc982567d-8829-4cc1-b61f-411df27b5250","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.241416509Z"}]},"request_id":"59f98ea2-3255-425c-a793-58a26b9bfafd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.246024} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"81a662413165f5939cfc3478b8fce366","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"81a662413165f5939cfc3478b8fce366"} gateway-1 | {"time_local":"18/Jun/2025:09:54:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.080","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"81a662413165f5939cfc3478b8fce366"} device-1 | {"level":"info","message":"POST /devices? 201 53ms","method":"POST","requestID":"81a662413165f5939cfc3478b8fce366","responseTime":53,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY","level":"info","message":"auth send jwt","requestID":"71956250ea02b963a405c709e36688b5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"71956250ea02b963a405c709e36688b5","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"71956250ea02b963a405c709e36688b5"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.679601,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"71956250ea02b963a405c709e36688b5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240460,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"71956250ea02b963a405c709e36688b5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55e88023-8164-4b30-acca-22149c582113","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"7eacaf25-f4a1-477f-bca8-ce003e82817e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.2895498} authorization-1 | {"level":"info","message":"POST /relations/query 200 23ms","method":"POST","requestID":"71956250ea02b963a405c709e36688b5","responseTime":23,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"79f33607-705e-43a4-99f3-48153fcaa611","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.2942705} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"71956250ea02b963a405c709e36688b5","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55e88023-8164-4b30-acca-22149c582113","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"1b6060da-0f6c-413a-8a09-40391e3b42e7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.3058093} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"76fad9da-4844-49e8-97f8-4e658255eb12","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.3060462} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"71956250ea02b963a405c709e36688b5","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55e88023-8164-4b30-acca-22149c582113","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55e88023-8164-4b30-acca-22149c582113","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.305789665Z"}]},"request_id":"d0c1ad50-0190-4467-afec-7ba8dfe76eaf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.3094337} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"71956250ea02b963a405c709e36688b5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"71956250ea02b963a405c709e36688b5"} gateway-1 | {"time_local":"18/Jun/2025:09:54:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.063","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"71956250ea02b963a405c709e36688b5"} device-1 | {"level":"info","message":"POST /devices? 201 59ms","method":"POST","requestID":"71956250ea02b963a405c709e36688b5","responseTime":59,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY","level":"info","message":"auth send jwt","requestID":"839bd1f828296954c35233460646eee9"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"839bd1f828296954c35233460646eee9","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"839bd1f828296954c35233460646eee9"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.621005,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"839bd1f828296954c35233460646eee9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240460,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"839bd1f828296954c35233460646eee9","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ff6d195-d663-4d3e-917a-925f5572106c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"36498a6a-44b6-421a-9016-e5213226e69e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.3503509} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"839bd1f828296954c35233460646eee9","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b2f8b44a-042b-4d9b-91df-8db3ea513e93","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.3549707} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"839bd1f828296954c35233460646eee9","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ff6d195-d663-4d3e-917a-925f5572106c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"d1503a74-0ed2-4d07-a698-f6d9ce1feb2e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.3640625} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"88760414-463a-4670-95aa-5909b825169a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.3641622} authorization-1 | {"level":"info","message":"POST /relations/update 200 31ms","method":"POST","requestID":"839bd1f828296954c35233460646eee9","responseTime":31,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ff6d195-d663-4d3e-917a-925f5572106c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ff6d195-d663-4d3e-917a-925f5572106c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.364046799Z"}]},"request_id":"c8603365-c0e5-4cfa-b3b0-11758407d2cf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.3882098} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"839bd1f828296954c35233460646eee9","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"839bd1f828296954c35233460646eee9"} device-1 | {"level":"info","message":"POST /devices? 201 74ms","method":"POST","requestID":"839bd1f828296954c35233460646eee9","responseTime":74,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.078","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"839bd1f828296954c35233460646eee9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY","level":"info","message":"auth send jwt","requestID":"2e9b53abfaac453d32e308d0d5181327"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2e9b53abfaac453d32e308d0d5181327","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"2e9b53abfaac453d32e308d0d5181327"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.709008,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2e9b53abfaac453d32e308d0d5181327","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240460,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2e9b53abfaac453d32e308d0d5181327","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2603dc06-fe5a-4b2a-9d3d-8f01ffa19a22","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1c7e07a7-208f-478e-b580-7f0b7594cafc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.4102747} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2e9b53abfaac453d32e308d0d5181327","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f16a1a8b-84c5-48df-9172-70dcd0c1cd2e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.4391606} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"2e9b53abfaac453d32e308d0d5181327","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2603dc06-fe5a-4b2a-9d3d-8f01ffa19a22","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"0090631c-eda1-4a77-acab-17da3a17557d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.4508402} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3fea49aa-65df-4da2-b1a8-39cf8a36ab06","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.451005} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"2e9b53abfaac453d32e308d0d5181327","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2603dc06-fe5a-4b2a-9d3d-8f01ffa19a22","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2603dc06-fe5a-4b2a-9d3d-8f01ffa19a22","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.450826051Z"}]},"request_id":"0b093bca-4536-4518-bf2f-a6cb047e2853","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.4550095} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2e9b53abfaac453d32e308d0d5181327","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"2e9b53abfaac453d32e308d0d5181327"} gateway-1 | {"time_local":"18/Jun/2025:09:54:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.065","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2e9b53abfaac453d32e308d0d5181327"} device-1 | {"level":"info","message":"POST /devices? 201 85ms","method":"POST","requestID":"2e9b53abfaac453d32e308d0d5181327","responseTime":85,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY","level":"info","message":"auth send jwt","requestID":"a800e4827e0b5c9604a88d1e702fef98"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a800e4827e0b5c9604a88d1e702fef98","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"a800e4827e0b5c9604a88d1e702fef98"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.655546,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a800e4827e0b5c9604a88d1e702fef98","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240460,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a800e4827e0b5c9604a88d1e702fef98","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feff3ad1d-e43c-48d3-956e-71c43695acef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"636c1f8f-b7c3-4933-8c45-3f92f11cfede","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.499902} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"a800e4827e0b5c9604a88d1e702fef98","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"01578d5f-3080-4b33-8140-af418008cde9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.5048602} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"a800e4827e0b5c9604a88d1e702fef98","responseTime":5,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feff3ad1d-e43c-48d3-956e-71c43695acef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"6b0e370c-c93a-4f4e-a471-d60330a19353","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.5384855} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9c9912d5-d330-4c0e-b036-3fd89583b3f2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.538606} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"a800e4827e0b5c9604a88d1e702fef98","responseTime":35,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feff3ad1d-e43c-48d3-956e-71c43695acef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feff3ad1d-e43c-48d3-956e-71c43695acef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.538462087Z"}]},"request_id":"65a2e6ec-51c7-4bcd-aab6-4b5b805a9538","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.5422096} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"a800e4827e0b5c9604a88d1e702fef98","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"a800e4827e0b5c9604a88d1e702fef98"} gateway-1 | {"time_local":"18/Jun/2025:09:54:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.063","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a800e4827e0b5c9604a88d1e702fef98"} device-1 | {"level":"info","message":"POST /devices? 201 59ms","method":"POST","requestID":"a800e4827e0b5c9604a88d1e702fef98","responseTime":59,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY","level":"info","message":"auth send jwt","requestID":"02ecbc2def6b204c7a99ee2a66f83a56"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"02ecbc2def6b204c7a99ee2a66f83a56","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"02ecbc2def6b204c7a99ee2a66f83a56"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.373775,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"02ecbc2def6b204c7a99ee2a66f83a56","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240460,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"02ecbc2def6b204c7a99ee2a66f83a56","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef834fa5-b3e3-44a7-8b0f-6cc8a10bd2ff","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e6bc218f-a2eb-41d7-a275-779ce4e40cd9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.5889993} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"02ecbc2def6b204c7a99ee2a66f83a56","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"47eca6c4-829c-4dda-907f-7bea0c3e1a20","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.5930393} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"02ecbc2def6b204c7a99ee2a66f83a56","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef834fa5-b3e3-44a7-8b0f-6cc8a10bd2ff","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"be7df039-2b1e-4f81-af0c-7c4fc20b4ee4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.6280346} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e1d6072b-ad59-417e-a667-ab4d5b87aed8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.6281192} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"02ecbc2def6b204c7a99ee2a66f83a56","responseTime":37,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef834fa5-b3e3-44a7-8b0f-6cc8a10bd2ff","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef834fa5-b3e3-44a7-8b0f-6cc8a10bd2ff","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.628001238Z"}]},"request_id":"39329eb4-4210-47ab-bc8b-1ae04bc0d5ee","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.632012} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"02ecbc2def6b204c7a99ee2a66f83a56","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"02ecbc2def6b204c7a99ee2a66f83a56"} device-1 | {"level":"info","message":"POST /devices? 201 86ms","method":"POST","requestID":"02ecbc2def6b204c7a99ee2a66f83a56","responseTime":86,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.089","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"02ecbc2def6b204c7a99ee2a66f83a56"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY","level":"info","message":"auth send jwt","requestID":"837e932ccb6122bf5c09e6f04bf8aa0d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"837e932ccb6122bf5c09e6f04bf8aa0d","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"837e932ccb6122bf5c09e6f04bf8aa0d"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.70151,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"837e932ccb6122bf5c09e6f04bf8aa0d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240460,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"837e932ccb6122bf5c09e6f04bf8aa0d","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02c11e9-5916-494b-a186-7007d875df4b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"84acd500-5c0e-4a5d-b56f-a2cba369678a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.6553082} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"837e932ccb6122bf5c09e6f04bf8aa0d","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0b47c0da-b4f6-4dc0-8153-3f345f764bc6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.6591218} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"837e932ccb6122bf5c09e6f04bf8aa0d","responseTime":7,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02c11e9-5916-494b-a186-7007d875df4b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"a8607ed5-5ad7-428a-9569-9f4252f6a971","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.6667466} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0508e750-39e0-4c18-909a-61f44c4a7b48","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.6669767} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"837e932ccb6122bf5c09e6f04bf8aa0d","responseTime":10,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02c11e9-5916-494b-a186-7007d875df4b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa02c11e9-5916-494b-a186-7007d875df4b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.666722187Z"}]},"request_id":"cef26dd4-3197-4260-9d86-584b8cfcd49f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.671605} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"837e932ccb6122bf5c09e6f04bf8aa0d","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"837e932ccb6122bf5c09e6f04bf8aa0d"} gateway-1 | {"time_local":"18/Jun/2025:09:54:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"278","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"837e932ccb6122bf5c09e6f04bf8aa0d"} device-1 | {"level":"info","message":"POST /devices? 201 35ms","method":"POST","requestID":"837e932ccb6122bf5c09e6f04bf8aa0d","responseTime":35,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY","level":"info","message":"auth send jwt","requestID":"db7f7d12a7524cb2b02084e2e3e23921"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"db7f7d12a7524cb2b02084e2e3e23921","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"db7f7d12a7524cb2b02084e2e3e23921"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.827518,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"db7f7d12a7524cb2b02084e2e3e23921","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240460,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"db7f7d12a7524cb2b02084e2e3e23921","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd06a8a23-9338-4362-8c0c-3e556712c7f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"62a7867a-97d7-4c0b-a2fe-fc9d0e63722d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.6962972} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"db7f7d12a7524cb2b02084e2e3e23921","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"77ab66e4-bc6a-4954-85bf-29a6852f4ec2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.7012331} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"db7f7d12a7524cb2b02084e2e3e23921","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd06a8a23-9338-4362-8c0c-3e556712c7f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"2e3b5f3b-19cf-48c1-bca2-2b7a8e71f7e3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.7085764} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"01854c08-3697-41e7-b0bd-ac72263b77b3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.7087255} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"db7f7d12a7524cb2b02084e2e3e23921","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd06a8a23-9338-4362-8c0c-3e556712c7f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd06a8a23-9338-4362-8c0c-3e556712c7f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.708562404Z"}]},"request_id":"8d258978-5a94-43cb-8ba4-1eabd43dd9ca","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.7122169} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"db7f7d12a7524cb2b02084e2e3e23921","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"db7f7d12a7524cb2b02084e2e3e23921"} device-1 | {"level":"info","message":"POST /devices? 201 34ms","method":"POST","requestID":"db7f7d12a7524cb2b02084e2e3e23921","responseTime":34,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1069","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"db7f7d12a7524cb2b02084e2e3e23921"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY","level":"info","message":"auth send jwt","requestID":"3be522f656fc05bdc5523a1d4f98b6d9"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3be522f656fc05bdc5523a1d4f98b6d9","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"3be522f656fc05bdc5523a1d4f98b6d9"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.702603,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3be522f656fc05bdc5523a1d4f98b6d9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240460,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3be522f656fc05bdc5523a1d4f98b6d9","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6889f718-7162-4648-8c00-f794aea93161","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"421a5a39-4eda-443e-b294-843926b49816","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.7368858} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3be522f656fc05bdc5523a1d4f98b6d9","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0ce084f5-01a3-411d-a3da-f89bdaf06c5c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.7405114} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"3be522f656fc05bdc5523a1d4f98b6d9","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6889f718-7162-4648-8c00-f794aea93161","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"11319eb4-6ed7-43ee-bf22-9006c6772fbd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.7779799} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bf96e64b-cf7a-4659-8c66-d19c5467253d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.7782252} authorization-1 | {"level":"info","message":"POST /relations/update 200 39ms","method":"POST","requestID":"3be522f656fc05bdc5523a1d4f98b6d9","responseTime":39,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6889f718-7162-4648-8c00-f794aea93161","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6889f718-7162-4648-8c00-f794aea93161","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.777950487Z"}]},"request_id":"458d919b-00a2-4ff1-b087-ee4ae146729f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.7819228} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3be522f656fc05bdc5523a1d4f98b6d9","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"3be522f656fc05bdc5523a1d4f98b6d9"} device-1 | {"level":"info","message":"POST /devices? 201 65ms","method":"POST","requestID":"3be522f656fc05bdc5523a1d4f98b6d9","responseTime":65,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1347","request_time":"0.068","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3be522f656fc05bdc5523a1d4f98b6d9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY","level":"info","message":"auth send jwt","requestID":"dfb85348f6e118211e0551f8cdecc41b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"dfb85348f6e118211e0551f8cdecc41b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"dfb85348f6e118211e0551f8cdecc41b"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.852131,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"dfb85348f6e118211e0551f8cdecc41b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240460,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"dfb85348f6e118211e0551f8cdecc41b","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd08eb12a-ac15-4928-ba44-77d3038a2763","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"474eab27-6834-4a46-9b62-3503042efa26","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.8281999} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"dfb85348f6e118211e0551f8cdecc41b","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"926b41d0-2bae-4777-9471-d5dabe0311a5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.8321543} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"dfb85348f6e118211e0551f8cdecc41b","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd08eb12a-ac15-4928-ba44-77d3038a2763","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"e3e255e0-fbcc-4b86-b176-2d8cff0ddcdc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.840501} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1e43bc44-d0f1-43e0-8b59-26c2bf5f5d9d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.8406622} forwarding-1 | {"level":"info","message":"Participant \"8d5c8e37-ec7d-4b37-a433-aae44f8e0b72\" in room \"http://localhost/rooms/26dd74c8-8711-42cc-8321-2fadaacdfe81\" did not answer hearbeat check, closing connection","requestID":"2ef438a0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"37227b96-550e-4d0a-85aa-7da93dda3089\" in room \"http://localhost/rooms/26dd74c8-8711-42cc-8321-2fadaacdfe81\" did not answer hearbeat check, closing connection","requestID":"2ef4add0-4c2a-11f0-b702-8b8a85c3ad9a"} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"dfb85348f6e118211e0551f8cdecc41b","responseTime":35,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd08eb12a-ac15-4928-ba44-77d3038a2763","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd08eb12a-ac15-4928-ba44-77d3038a2763","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.840483288Z"}]},"request_id":"1156b830-2ee3-47ea-8836-7f050e1f0866","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.8688276} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"dfb85348f6e118211e0551f8cdecc41b","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"dfb85348f6e118211e0551f8cdecc41b"} gateway-1 | {"time_local":"18/Jun/2025:09:54:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1070","request_time":"0.085","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dfb85348f6e118211e0551f8cdecc41b"} device-1 | {"level":"info","message":"POST /devices? 201 82ms","method":"POST","requestID":"dfb85348f6e118211e0551f8cdecc41b","responseTime":82,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY","level":"info","message":"auth send jwt","requestID":"c8a0d58bca2483695a9c17ff711d9ed9"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c8a0d58bca2483695a9c17ff711d9ed9","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"c8a0d58bca2483695a9c17ff711d9ed9"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.678969,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d06a8a23-9338-4362-8c0c-3e556712c7f2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c8a0d58bca2483695a9c17ff711d9ed9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d06a8a23-9338-4362-8c0c-3e556712c7f2","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240460,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c8a0d58bca2483695a9c17ff711d9ed9","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd06a8a23-9338-4362-8c0c-3e556712c7f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd06a8a23-9338-4362-8c0c-3e556712c7f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.708562404Z"}]},"request_id":"13071423-6dfb-44f8-95d9-e6d7d7f7f130","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.8860905} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c8a0d58bca2483695a9c17ff711d9ed9","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d85c1c1c-ec56-4c94-8bdf-a5fafea6a951","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.914522} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"c8a0d58bca2483695a9c17ff711d9ed9","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd06a8a23-9338-4362-8c0c-3e556712c7f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd06a8a23-9338-4362-8c0c-3e556712c7f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.708562404Z"}]},"request_id":"5db719ce-a7c4-4a05-b31b-9822bbe29ac4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.9288528} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c8a0d58bca2483695a9c17ff711d9ed9","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"c8a0d58bca2483695a9c17ff711d9ed9"} gateway-1 | {"time_local":"18/Jun/2025:09:54:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d06a8a23-9338-4362-8c0c-3e556712c7f2? HTTP/1.1","status": "200","body_bytes_sent":"1141","request_time":"0.056","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c8a0d58bca2483695a9c17ff711d9ed9"} device-1 | {"level":"info","message":"PATCH /devices/d06a8a23-9338-4362-8c0c-3e556712c7f2? 200 53ms","method":"PATCH","requestID":"c8a0d58bca2483695a9c17ff711d9ed9","responseTime":53,"status":200,"url":"/devices/d06a8a23-9338-4362-8c0c-3e556712c7f2?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY","level":"info","message":"auth send jwt","requestID":"94c7980d5de115319b5f4c28aee9cdf0"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"94c7980d5de115319b5f4c28aee9cdf0","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"94c7980d5de115319b5f4c28aee9cdf0"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.685592,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:20Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6889f718-7162-4648-8c00-f794aea93161","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"94c7980d5de115319b5f4c28aee9cdf0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6889f718-7162-4648-8c00-f794aea93161","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240460,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MH0.vY8iV5QXyDGEFO7CyrwZF515g_-d-cRvmveNqmW7AsY"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"94c7980d5de115319b5f4c28aee9cdf0","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6889f718-7162-4648-8c00-f794aea93161","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6889f718-7162-4648-8c00-f794aea93161","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.777950487Z"}]},"request_id":"07d6d7ca-f180-41e5-acc9-69331c3bf5a1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.9681342} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"94c7980d5de115319b5f4c28aee9cdf0","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e06f9707-b69d-452f-904d-73495fcce32f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.972827} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"94c7980d5de115319b5f4c28aee9cdf0","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6889f718-7162-4648-8c00-f794aea93161","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6889f718-7162-4648-8c00-f794aea93161","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.777950487Z"}]},"request_id":"487ca858-35c6-4255-b43a-ab3c044a7b6e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240460.9825253} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"94c7980d5de115319b5f4c28aee9cdf0","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"94c7980d5de115319b5f4c28aee9cdf0"} gateway-1 | {"time_local":"18/Jun/2025:09:54:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/6889f718-7162-4648-8c00-f794aea93161? HTTP/1.1","status": "200","body_bytes_sent":"1491","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"94c7980d5de115319b5f4c28aee9cdf0"} device-1 | {"level":"info","message":"PATCH /devices/6889f718-7162-4648-8c00-f794aea93161? 200 49ms","method":"PATCH","requestID":"94c7980d5de115319b5f4c28aee9cdf0","responseTime":49,"status":200,"url":"/devices/6889f718-7162-4648-8c00-f794aea93161?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo","level":"info","message":"auth send jwt","requestID":"c3a1a0e214e37eeeb45452acfac0a082"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c3a1a0e214e37eeeb45452acfac0a082","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"c3a1a0e214e37eeeb45452acfac0a082"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.705382,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d08eb12a-ac15-4928-ba44-77d3038a2763","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c3a1a0e214e37eeeb45452acfac0a082","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d08eb12a-ac15-4928-ba44-77d3038a2763","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c3a1a0e214e37eeeb45452acfac0a082","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd08eb12a-ac15-4928-ba44-77d3038a2763","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd08eb12a-ac15-4928-ba44-77d3038a2763","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.840483288Z"}]},"request_id":"72267772-18f6-459d-8d17-4119dd1480d6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.0218098} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c3a1a0e214e37eeeb45452acfac0a082","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"78fb9723-edb3-4b1e-90ad-9e04ce3cf838","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.0260866} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"c3a1a0e214e37eeeb45452acfac0a082","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd08eb12a-ac15-4928-ba44-77d3038a2763","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd08eb12a-ac15-4928-ba44-77d3038a2763","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.840483288Z"}]},"request_id":"e893ee94-39a3-45a9-bb27-5bc578c3559a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.0590813} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c3a1a0e214e37eeeb45452acfac0a082","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"c3a1a0e214e37eeeb45452acfac0a082"} device-1 | {"level":"info","message":"PATCH /devices/d08eb12a-ac15-4928-ba44-77d3038a2763? 200 48ms","method":"PATCH","requestID":"c3a1a0e214e37eeeb45452acfac0a082","responseTime":48,"status":200,"url":"/devices/d08eb12a-ac15-4928-ba44-77d3038a2763?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d08eb12a-ac15-4928-ba44-77d3038a2763? HTTP/1.1","status": "200","body_bytes_sent":"1142","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c3a1a0e214e37eeeb45452acfac0a082"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo","level":"info","message":"auth send jwt","requestID":"46684795b3db194a86fb4c6c84b991a2"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"46684795b3db194a86fb4c6c84b991a2","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"46684795b3db194a86fb4c6c84b991a2"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.672478,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d06a8a23-9338-4362-8c0c-3e556712c7f2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"46684795b3db194a86fb4c6c84b991a2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d06a8a23-9338-4362-8c0c-3e556712c7f2","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"46684795b3db194a86fb4c6c84b991a2","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd06a8a23-9338-4362-8c0c-3e556712c7f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd06a8a23-9338-4362-8c0c-3e556712c7f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.708562404Z"}]},"request_id":"fd10c52e-12b4-4a50-88c9-fafda83773e7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.0725594} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"46684795b3db194a86fb4c6c84b991a2","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.641231,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.571964,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5549d53-d9ca-48dd-9d26-9d96fbf98e47","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"46684795b3db194a86fb4c6c84b991a2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/e5549d53-d9ca-48dd-9d26-9d96fbf98e47","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"46684795b3db194a86fb4c6c84b991a2","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3f2b2e3b-f9bd-4316-89bb-7b026453a1a5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"46684795b3db194a86fb4c6c84b991a2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3f2b2e3b-f9bd-4316-89bb-7b026453a1a5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"46684795b3db194a86fb4c6c84b991a2","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.741313,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6889f718-7162-4648-8c00-f794aea93161","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"46684795b3db194a86fb4c6c84b991a2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6889f718-7162-4648-8c00-f794aea93161","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"46684795b3db194a86fb4c6c84b991a2","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.673325,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e704736e-f9a4-4f51-b4a7-8245eaeedec4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"46684795b3db194a86fb4c6c84b991a2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/e704736e-f9a4-4f51-b4a7-8245eaeedec4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 34ms","method":"POST","requestID":"46684795b3db194a86fb4c6c84b991a2","responseTime":34,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"46684795b3db194a86fb4c6c84b991a2"} gateway-1 | {"time_local":"18/Jun/2025:09:54:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d06a8a23-9338-4362-8c0c-3e556712c7f2? HTTP/1.1","status": "200","body_bytes_sent":"1141","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"46684795b3db194a86fb4c6c84b991a2"} device-1 | {"level":"info","message":"GET /devices/d06a8a23-9338-4362-8c0c-3e556712c7f2? 200 48ms","method":"GET","requestID":"46684795b3db194a86fb4c6c84b991a2","responseTime":48,"status":200,"url":"/devices/d06a8a23-9338-4362-8c0c-3e556712c7f2?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo","level":"info","message":"auth send jwt","requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.699366,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6889f718-7162-4648-8c00-f794aea93161","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6889f718-7162-4648-8c00-f794aea93161","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6889f718-7162-4648-8c00-f794aea93161","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6889f718-7162-4648-8c00-f794aea93161","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.777950487Z"}]},"request_id":"653b23dc-81f4-4ec1-8ded-253b3f764ead","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.1248991} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.603724,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":25.554576,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.665699,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c982567d-8829-4cc1-b61f-411df27b5250","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c982567d-8829-4cc1-b61f-411df27b5250","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/55e88023-8164-4b30-acca-22149c582113","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/55e88023-8164-4b30-acca-22149c582113","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ff6d195-d663-4d3e-917a-925f5572106c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/7ff6d195-d663-4d3e-917a-925f5572106c","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.644805,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d06a8a23-9338-4362-8c0c-3e556712c7f2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d06a8a23-9338-4362-8c0c-3e556712c7f2","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.551317,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48758","level":"info","msg":"Received request.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d08eb12a-ac15-4928-ba44-77d3038a2763","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d08eb12a-ac15-4928-ba44-77d3038a2763","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48758","level":"info","msg":"Sent response.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.671523,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2603dc06-fe5a-4b2a-9d3d-8f01ffa19a22","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2603dc06-fe5a-4b2a-9d3d-8f01ffa19a22","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","method":"POST","requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce","responseTime":11,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce"} gateway-1 | {"time_local":"18/Jun/2025:09:54:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6889f718-7162-4648-8c00-f794aea93161? HTTP/1.1","status": "200","body_bytes_sent":"1491","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce"} device-1 | {"level":"info","message":"GET /devices/6889f718-7162-4648-8c00-f794aea93161? 200 50ms","method":"GET","requestID":"6fd1b2802b6c19d44a3e9e134a65e8ce","responseTime":50,"status":200,"url":"/devices/6889f718-7162-4648-8c00-f794aea93161?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo","level":"info","message":"auth send jwt","requestID":"5862a7f63648128d1620b48a8e0d2c56"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5862a7f63648128d1620b48a8e0d2c56","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5862a7f63648128d1620b48a8e0d2c56"} authorization-1 | {"client_addr":"127.0.0.1:48758","level":"info","msg":"Received request.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48758","level":"info","msg":"Sent response.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.70303,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d08eb12a-ac15-4928-ba44-77d3038a2763","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5862a7f63648128d1620b48a8e0d2c56","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d08eb12a-ac15-4928-ba44-77d3038a2763","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"5862a7f63648128d1620b48a8e0d2c56","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd08eb12a-ac15-4928-ba44-77d3038a2763","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd08eb12a-ac15-4928-ba44-77d3038a2763","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:20.840483288Z"}]},"request_id":"eb0de533-f456-435d-95e0-14d3bf797ddc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.2073038} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5862a7f63648128d1620b48a8e0d2c56","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:48758","level":"info","msg":"Received request.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48758","level":"info","msg":"Sent response.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.909887,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Received request.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:46780","level":"info","msg":"Sent response.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.479577,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.446531,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eff3ad1d-e43c-48d3-956e-71c43695acef","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5862a7f63648128d1620b48a8e0d2c56","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/eff3ad1d-e43c-48d3-956e-71c43695acef","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"5862a7f63648128d1620b48a8e0d2c56","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.74542,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef834fa5-b3e3-44a7-8b0f-6cc8a10bd2ff","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5862a7f63648128d1620b48a8e0d2c56","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/ef834fa5-b3e3-44a7-8b0f-6cc8a10bd2ff","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"5862a7f63648128d1620b48a8e0d2c56","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a02c11e9-5916-494b-a186-7007d875df4b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5862a7f63648128d1620b48a8e0d2c56","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a02c11e9-5916-494b-a186-7007d875df4b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"5862a7f63648128d1620b48a8e0d2c56","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d06a8a23-9338-4362-8c0c-3e556712c7f2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5862a7f63648128d1620b48a8e0d2c56","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d06a8a23-9338-4362-8c0c-3e556712c7f2","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"5862a7f63648128d1620b48a8e0d2c56","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5862a7f63648128d1620b48a8e0d2c56"} device-1 | {"level":"info","message":"GET /devices/d08eb12a-ac15-4928-ba44-77d3038a2763? 200 49ms","method":"GET","requestID":"5862a7f63648128d1620b48a8e0d2c56","responseTime":49,"status":200,"url":"/devices/d08eb12a-ac15-4928-ba44-77d3038a2763?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d08eb12a-ac15-4928-ba44-77d3038a2763? HTTP/1.1","status": "200","body_bytes_sent":"1142","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5862a7f63648128d1620b48a8e0d2c56"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo","level":"info","message":"auth send jwt","requestID":"2b64b792052b1de436789cee549596ef"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"2b64b792052b1de436789cee549596ef","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"2b64b792052b1de436789cee549596ef"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.65191,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2b64b792052b1de436789cee549596ef","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2b64b792052b1de436789cee549596ef","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F751fdda8-7491-4754-8782-4d67e12dbc54","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"6ea5bcd0-9254-42af-a109-6063e58231e8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.2786608} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2b64b792052b1de436789cee549596ef","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"906e1e6f-1a90-485f-bb3d-dab47a609c33","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.2823026} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"2b64b792052b1de436789cee549596ef","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F751fdda8-7491-4754-8782-4d67e12dbc54","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"7ec6121a-6408-436c-888f-06643f5fde80","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.294431} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5c2d1742-4bfc-42de-914b-9aea34177ab2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.2946882} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"2b64b792052b1de436789cee549596ef","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F751fdda8-7491-4754-8782-4d67e12dbc54","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F751fdda8-7491-4754-8782-4d67e12dbc54","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:21.294410513Z"}]},"request_id":"f4f18daa-b868-40bc-af3a-db90263ad4a9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.2979121} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2b64b792052b1de436789cee549596ef","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"2b64b792052b1de436789cee549596ef"} device-1 | {"level":"info","message":"POST /devices? 201 49ms","method":"POST","requestID":"2b64b792052b1de436789cee549596ef","responseTime":49,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"284","request_time":"0.077","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2b64b792052b1de436789cee549596ef"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo","level":"info","message":"auth send jwt","requestID":"375c448714443ba54d69f8c04c972b2f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"375c448714443ba54d69f8c04c972b2f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"375c448714443ba54d69f8c04c972b2f"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.230839,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"375c448714443ba54d69f8c04c972b2f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"375c448714443ba54d69f8c04c972b2f","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17be1b88-d031-4058-8adb-fb0d51058e07","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3dc4dcee-3cc9-40ed-992d-acedfa694ebd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.3246565} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"375c448714443ba54d69f8c04c972b2f","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5d8b474d-f692-45b0-a4f7-d0f1c410f64b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.328323} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"375c448714443ba54d69f8c04c972b2f","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17be1b88-d031-4058-8adb-fb0d51058e07","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"9fa603a5-045e-4716-beb0-29893dfe2607","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.337765} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"02126423-67ef-4ec8-a6c8-e10923520d4b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.3380718} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"375c448714443ba54d69f8c04c972b2f","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17be1b88-d031-4058-8adb-fb0d51058e07","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17be1b88-d031-4058-8adb-fb0d51058e07","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:21.337749554Z"}]},"request_id":"e5a0b134-f04d-445d-99f8-0e09bc51962e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.3419154} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"375c448714443ba54d69f8c04c972b2f","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"375c448714443ba54d69f8c04c972b2f"} device-1 | {"level":"info","message":"POST /devices? 201 39ms","method":"POST","requestID":"375c448714443ba54d69f8c04c972b2f","responseTime":39,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"706","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"375c448714443ba54d69f8c04c972b2f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo","level":"info","message":"auth send jwt","requestID":"99cdd2395d24769ac9bb1cecaac91ebb"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"99cdd2395d24769ac9bb1cecaac91ebb","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"99cdd2395d24769ac9bb1cecaac91ebb"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.645809,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"99cdd2395d24769ac9bb1cecaac91ebb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240461,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2MX0.KkNj983q2PLCRLvAyD_pHpanPbe-X1aH3Fe7pUseAlo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"99cdd2395d24769ac9bb1cecaac91ebb","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"69711336-5c72-405d-8b41-4f5f9fa9072a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.364946} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"99cdd2395d24769ac9bb1cecaac91ebb","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b5cbfec1-b853-4d5d-a418-69028d1b7f48","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.3688674} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"99cdd2395d24769ac9bb1cecaac91ebb","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"b2e1e1bc-02a3-4dc7-9bb4-bc037bbea0df","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.374836} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0c7d0cf7-e89d-4e1a-bdb9-1b899796ebdd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.3749993} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"99cdd2395d24769ac9bb1cecaac91ebb","responseTime":8,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:21.374818554Z"}]},"request_id":"06b1ecc4-180c-4552-9261-e4f8b059d36a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240461.3786213} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"99cdd2395d24769ac9bb1cecaac91ebb","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"99cdd2395d24769ac9bb1cecaac91ebb"} device-1 | {"level":"info","message":"POST /devices? 201 31ms","method":"POST","requestID":"99cdd2395d24769ac9bb1cecaac91ebb","responseTime":31,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.035","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"99cdd2395d24769ac9bb1cecaac91ebb"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"1e03f5ad-fb6b-47eb-841c-ebd5faa8be0b\" in room \"http://localhost/rooms/9b311815-e287-44b0-aa14-b4c92c7e0e57\"","requestID":"32e68170-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"9b921119-1da5-49b8-aaad-e97ba8e2c087\" in room \"http://localhost/rooms/9b311815-e287-44b0-aa14-b4c92c7e0e57\"","requestID":"32ea7910-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c3209a7edb3805c8caa7abee13e646a0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c3209a7edb3805c8caa7abee13e646a0","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/13e7f31f-a823-4ae5-9391-68a56c813f70/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c3209a7edb3805c8caa7abee13e646a0"} device-1 | {"level":"info","message":"OPTIONS /devices/13e7f31f-a823-4ae5-9391-68a56c813f70/websocket 200 1ms","method":"OPTIONS","requestID":"c3209a7edb3805c8caa7abee13e646a0","responseTime":1,"status":200,"url":"/devices/13e7f31f-a823-4ae5-9391-68a56c813f70/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"eccd5f13180efdccbb8008e4eadcc037","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"eccd5f13180efdccbb8008e4eadcc037","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/751fdda8-7491-4754-8782-4d67e12dbc54/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"eccd5f13180efdccbb8008e4eadcc037"} device-1 | {"level":"info","message":"OPTIONS /devices/751fdda8-7491-4754-8782-4d67e12dbc54/websocket 200 1ms","method":"OPTIONS","requestID":"eccd5f13180efdccbb8008e4eadcc037","responseTime":1,"status":200,"url":"/devices/751fdda8-7491-4754-8782-4d67e12dbc54/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg","level":"info","message":"auth send jwt","requestID":"acc4bd7cb99a3b08ce320a64fb3c8f3f"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"acc4bd7cb99a3b08ce320a64fb3c8f3f","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"acc4bd7cb99a3b08ce320a64fb3c8f3f"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:23Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg","level":"info","message":"auth send jwt","requestID":"7a8bf9772ee10e16f237734f67d5a75e"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"7a8bf9772ee10e16f237734f67d5a75e","responseTime":5,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.549482,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:23Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"7a8bf9772ee10e16f237734f67d5a75e"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"acc4bd7cb99a3b08ce320a64fb3c8f3f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240463,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"acc4bd7cb99a3b08ce320a64fb3c8f3f","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:23Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.357461,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:23Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7a8bf9772ee10e16f237734f67d5a75e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240463,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"7a8bf9772ee10e16f237734f67d5a75e","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"acc4bd7cb99a3b08ce320a64fb3c8f3f"} gateway-1 | {"time_local":"18/Jun/2025:09:54:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/13e7f31f-a823-4ae5-9391-68a56c813f70/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.049","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"acc4bd7cb99a3b08ce320a64fb3c8f3f"} device-1 | {"level":"info","message":"POST /devices/13e7f31f-a823-4ae5-9391-68a56c813f70/websocket 200 39ms","method":"POST","requestID":"acc4bd7cb99a3b08ce320a64fb3c8f3f","responseTime":39,"status":200,"url":"/devices/13e7f31f-a823-4ae5-9391-68a56c813f70/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"7a8bf9772ee10e16f237734f67d5a75e"} gateway-1 | {"time_local":"18/Jun/2025:09:54:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/751fdda8-7491-4754-8782-4d67e12dbc54/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.054","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7a8bf9772ee10e16f237734f67d5a75e"} device-1 | {"level":"info","message":"POST /devices/751fdda8-7491-4754-8782-4d67e12dbc54/websocket 200 44ms","method":"POST","requestID":"7a8bf9772ee10e16f237734f67d5a75e","responseTime":44,"status":200,"url":"/devices/751fdda8-7491-4754-8782-4d67e12dbc54/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"83cf0fca08910db49bc5aabe7d6c8001","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"83cf0fca08910db49bc5aabe7d6c8001","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/13e7f31f-a823-4ae5-9391-68a56c813f70? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.019","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"83cf0fca08910db49bc5aabe7d6c8001"} device-1 | {"level":"info","message":"OPTIONS /devices/13e7f31f-a823-4ae5-9391-68a56c813f70? 200 1ms","method":"OPTIONS","requestID":"83cf0fca08910db49bc5aabe7d6c8001","responseTime":1,"status":200,"url":"/devices/13e7f31f-a823-4ae5-9391-68a56c813f70?"} device-1 | {"level":"info","message":"device 'http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg","level":"info","message":"auth send jwt","requestID":"6e0df03c7ac92785518fb98cc4ca85e3"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6e0df03c7ac92785518fb98cc4ca85e3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"6e0df03c7ac92785518fb98cc4ca85e3"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:23Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.877262,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:23Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6e0df03c7ac92785518fb98cc4ca85e3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240463,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6e0df03c7ac92785518fb98cc4ca85e3","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"859493f299abf2e4a2ebccce326c2b36","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"859493f299abf2e4a2ebccce326c2b36","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/751fdda8-7491-4754-8782-4d67e12dbc54? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"859493f299abf2e4a2ebccce326c2b36"} device-1 | {"level":"info","message":"OPTIONS /devices/751fdda8-7491-4754-8782-4d67e12dbc54? 200 1ms","method":"OPTIONS","requestID":"859493f299abf2e4a2ebccce326c2b36","responseTime":1,"status":200,"url":"/devices/751fdda8-7491-4754-8782-4d67e12dbc54?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:21.374818554Z"}]},"request_id":"df184074-4fa2-472c-b63f-434788f526c7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240463.8123863} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6e0df03c7ac92785518fb98cc4ca85e3","responseTime":3,"status":200,"url":"/relations/query"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg","level":"info","message":"auth send jwt","requestID":"0b11ecf39bdaa00f9617605a81668e90"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"0b11ecf39bdaa00f9617605a81668e90","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"0b11ecf39bdaa00f9617605a81668e90"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1dfe1b29-053c-41a6-a218-42e10258e84b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240463.8425562} authorization-1 | {"level":"info","message":"POST /relations/update 200 30ms","method":"POST","requestID":"6e0df03c7ac92785518fb98cc4ca85e3","responseTime":30,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:23Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.702805,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:23Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0b11ecf39bdaa00f9617605a81668e90","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240463,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0b11ecf39bdaa00f9617605a81668e90","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:21.374818554Z"}]},"request_id":"6b90f480-0150-4b8e-abd1-335553072e6f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240463.8496127} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F751fdda8-7491-4754-8782-4d67e12dbc54","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F751fdda8-7491-4754-8782-4d67e12dbc54","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:21.294410513Z"}]},"request_id":"2e018d5f-21d8-4c3b-ac19-206804ff7383","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240463.8507473} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"6e0df03c7ac92785518fb98cc4ca85e3","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"0b11ecf39bdaa00f9617605a81668e90","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"6e0df03c7ac92785518fb98cc4ca85e3"} device-1 | {"level":"info","message":"PATCH /devices/13e7f31f-a823-4ae5-9391-68a56c813f70? 200 54ms","method":"PATCH","requestID":"6e0df03c7ac92785518fb98cc4ca85e3","responseTime":54,"status":200,"url":"/devices/13e7f31f-a823-4ae5-9391-68a56c813f70?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/13e7f31f-a823-4ae5-9391-68a56c813f70? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.058","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6e0df03c7ac92785518fb98cc4ca85e3"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"89da1977-24f4-42cf-8665-b821027d9526","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240463.8626962} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"0b11ecf39bdaa00f9617605a81668e90","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F751fdda8-7491-4754-8782-4d67e12dbc54","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F751fdda8-7491-4754-8782-4d67e12dbc54","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:21.294410513Z"}]},"request_id":"de9dd905-e91d-4b5a-835b-2da1f979446b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240463.8950057} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"0b11ecf39bdaa00f9617605a81668e90","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"0b11ecf39bdaa00f9617605a81668e90"} device-1 | {"level":"info","message":"PATCH /devices/751fdda8-7491-4754-8782-4d67e12dbc54? 200 54ms","method":"PATCH","requestID":"0b11ecf39bdaa00f9617605a81668e90","responseTime":54,"status":200,"url":"/devices/751fdda8-7491-4754-8782-4d67e12dbc54?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/751fdda8-7491-4754-8782-4d67e12dbc54? HTTP/1.1","status": "200","body_bytes_sent":"845","request_time":"0.083","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0b11ecf39bdaa00f9617605a81668e90"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg","level":"info","message":"auth send jwt","requestID":"0ed48ce691e4f6678e59b87a87096a46"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0ed48ce691e4f6678e59b87a87096a46","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0ed48ce691e4f6678e59b87a87096a46"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:23Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.663862,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0ed48ce691e4f6678e59b87a87096a46","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240463,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0ed48ce691e4f6678e59b87a87096a46","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:21.374818554Z"}]},"request_id":"22d100a0-26fe-4e90-a057-e16f276306b0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240463.9114099} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"0ed48ce691e4f6678e59b87a87096a46","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0ed48ce691e4f6678e59b87a87096a46"} device-1 | {"level":"info","message":"GET /devices/13e7f31f-a823-4ae5-9391-68a56c813f70? 200 35ms","method":"GET","requestID":"0ed48ce691e4f6678e59b87a87096a46","responseTime":35,"status":200,"url":"/devices/13e7f31f-a823-4ae5-9391-68a56c813f70?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/13e7f31f-a823-4ae5-9391-68a56c813f70? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0ed48ce691e4f6678e59b87a87096a46"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg","level":"info","message":"auth send jwt","requestID":"ed0989116fa0ff912e4969ce2348ab10"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ed0989116fa0ff912e4969ce2348ab10","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"ed0989116fa0ff912e4969ce2348ab10"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:23Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.627396,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:23Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ed0989116fa0ff912e4969ce2348ab10","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240463,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ed0989116fa0ff912e4969ce2348ab10","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979"},"level":"info","message":"Attempting to run experiment","requestID":"ed0989116fa0ff912e4969ce2348ab10"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979"},"level":"info","message":"Attempting to book experiment","requestID":"ed0989116fa0ff912e4969ce2348ab10"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979"},"level":"info","message":"Successfully booked experiment","requestID":"ed0989116fa0ff912e4969ce2348ab10"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"36ceb820-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"36cedf30-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.715039,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/17be1b88-d031-4058-8adb-fb0d51058e07","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"36ceb820-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/17be1b88-d031-4058-8adb-fb0d51058e07","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240463,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"36ceb820-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.619909,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"36cedf30-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240463,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"36cedf30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17be1b88-d031-4058-8adb-fb0d51058e07","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17be1b88-d031-4058-8adb-fb0d51058e07","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:21.337749554Z"}]},"request_id":"de207384-7f36-4d66-b4e4-e0b0a520ee67","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.0416446} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"36ceb820-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:21.374818554Z"}]},"request_id":"a857cd68-bb68-4c21-8989-5f6b7c74bdaa","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.0421312} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"36cedf30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"36cedf30-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/13e7f31f-a823-4ae5-9391-68a56c813f70? 200 11ms","method":"GET","requestID":"36cedf30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/13e7f31f-a823-4ae5-9391-68a56c813f70?"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.842631,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"36ceb820-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240463,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"36ceb820-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"36ceb820-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/17be1b88-d031-4058-8adb-fb0d51058e07? 200 17ms","method":"GET","requestID":"36ceb820-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":17,"status":200,"url":"/devices/17be1b88-d031-4058-8adb-fb0d51058e07?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979"},"level":"info","message":"Setting up experiment","requestID":"ed0989116fa0ff912e4969ce2348ab10"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"ed0989116fa0ff912e4969ce2348ab10"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"ed0989116fa0ff912e4969ce2348ab10"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979"},"level":"info","message":"Successfully locked booking for experiment","requestID":"ed0989116fa0ff912e4969ce2348ab10"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979"},"level":"info","message":"Successfully set up experiment","requestID":"ed0989116fa0ff912e4969ce2348ab10"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"36dd3710-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"36dd5e20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.740707,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"36dd3710-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240463,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"36dd3710-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.621767,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979"},"level":"info","message":"Successfully running experiment","requestID":"ed0989116fa0ff912e4969ce2348ab10"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"36dd5e20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240463,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"36dd5e20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F751fdda8-7491-4754-8782-4d67e12dbc54","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F751fdda8-7491-4754-8782-4d67e12dbc54","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:21.294410513Z"}]},"request_id":"a160deaa-45d4-49b9-a15e-0a6639d76955","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.1403525} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"36dd3710-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:21.374818554Z"}]},"request_id":"50e3d569-bf65-431c-b52f-e1953bc2c4a4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.1418335} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"36dd5e20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"36dd3710-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/751fdda8-7491-4754-8782-4d67e12dbc54? 200 17ms","method":"GET","requestID":"36dd3710-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":17,"status":200,"url":"/devices/751fdda8-7491-4754-8782-4d67e12dbc54?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"36dd5e20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/13e7f31f-a823-4ae5-9391-68a56c813f70? 200 15ms","method":"GET","requestID":"36dd5e20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":15,"status":200,"url":"/devices/13e7f31f-a823-4ae5-9391-68a56c813f70?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"36e04450-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5329b9be-9f5f-46e0-83cb-f5fcd3da2979#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5329b9be-9f5f-46e0-83cb-f5fcd3da2979","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"d4d571b3-7979-491e-bc3c-011f15889498","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.1514199} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"26743382-64b4-4155-ad5d-9b38e8e3147e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.1516826} authorization-1 | {"level":"info","message":"POST /relations/update 200 22ms","method":"POST","requestID":"ed0989116fa0ff912e4969ce2348ab10","responseTime":22,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F751fdda8-7491-4754-8782-4d67e12dbc54","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"060c6f29-305c-449b-a983-ace8520b636e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.1540484} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.232785,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"36e04450-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 13ms","method":"POST","requestID":"36e04450-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:54:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"808","request_time":"0.226","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ed0989116fa0ff912e4969ce2348ab10"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"ed0989116fa0ff912e4969ce2348ab10"} experiment-1 | {"level":"info","message":"POST /experiments? 201 223ms","method":"POST","requestID":"ed0989116fa0ff912e4969ce2348ab10","responseTime":223,"status":201,"url":"/experiments?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2NH0.9-QAnYIiauXm4LZbGGmmsIudZJhOdULNqTd4poyExQ0","level":"info","message":"auth send jwt","requestID":"5bf47ea9e6e98155ec31d2123202d043"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"36e04450-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"level":"info","message":"GET /auth 200 9ms","method":"GET","requestID":"5bf47ea9e6e98155ec31d2123202d043","responseTime":9,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/751fdda8-7491-4754-8782-4d67e12dbc54/signaling 200 29ms","method":"POST","requestID":"36e04450-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/devices/751fdda8-7491-4754-8782-4d67e12dbc54/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5bf47ea9e6e98155ec31d2123202d043"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"36e54d60-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.162708,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} forwarding-1 | {"level":"info","message":"Participant \"550103c0-69fb-471b-9028-d3651ce9bd04\" in room \"http://localhost/rooms/c092760d-e65d-45bd-9cd7-4de23a5144e6\" did not answer hearbeat check, closing connection","requestID":"30ec8630-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"c59d36e0-7192-47f5-86db-bf9d8b41eafc\" in room \"http://localhost/rooms/c092760d-e65d-45bd-9cd7-4de23a5144e6\" did not answer hearbeat check, closing connection","requestID":"30ecfb60-4c2a-11f0-b702-8b8a85c3ad9a"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5bf47ea9e6e98155ec31d2123202d043","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240464,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2NH0.9-QAnYIiauXm4LZbGGmmsIudZJhOdULNqTd4poyExQ0"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"5bf47ea9e6e98155ec31d2123202d043","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6ede40bd-d6f7-46b2-bf09-5cd9cc774844","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.1873803} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.239753,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"36e54d60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"36e54d60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"36e54d60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/13e7f31f-a823-4ae5-9391-68a56c813f70/signaling 200 10ms","method":"POST","requestID":"36e54d60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/13e7f31f-a823-4ae5-9391-68a56c813f70/signaling"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F751fdda8-7491-4754-8782-4d67e12dbc54","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F751fdda8-7491-4754-8782-4d67e12dbc54","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:21.294410513Z"}]},"request_id":"424694a9-1e68-4479-b327-68ccfa7e40c9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.1932325} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"ed0989116fa0ff912e4969ce2348ab10"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"5bf47ea9e6e98155ec31d2123202d043","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"36e77040-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"36e79750-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5bf47ea9e6e98155ec31d2123202d043"} gateway-1 | {"time_local":"18/Jun/2025:09:54:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/751fdda8-7491-4754-8782-4d67e12dbc54? HTTP/1.1","status": "200","body_bytes_sent":"845","request_time":"0.030","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5bf47ea9e6e98155ec31d2123202d043"} device-1 | {"level":"info","message":"GET /devices/751fdda8-7491-4754-8782-4d67e12dbc54? 200 20ms","method":"GET","requestID":"5bf47ea9e6e98155ec31d2123202d043","responseTime":20,"status":200,"url":"/devices/751fdda8-7491-4754-8782-4d67e12dbc54?"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.917256,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"36e77040-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240463,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"36e77040-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.829343,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2NH0.9-QAnYIiauXm4LZbGGmmsIudZJhOdULNqTd4poyExQ0","level":"info","message":"auth send jwt","requestID":"4a2d81302ef91dad7abd05ba4d6a63cf"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"36e79750-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240463,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4a2d81302ef91dad7abd05ba4d6a63cf","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"36e79750-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4a2d81302ef91dad7abd05ba4d6a63cf"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F751fdda8-7491-4754-8782-4d67e12dbc54","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F751fdda8-7491-4754-8782-4d67e12dbc54","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:21.294410513Z"}]},"request_id":"1eda5596-4945-41f3-8455-35cbe1812882","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.2054064} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"36e77040-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:21.374818554Z"}]},"request_id":"083e4bf1-fa8d-4ef1-a401-a062b7467e28","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.2063253} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"36e77040-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"36e79750-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.024371,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} device-1 | {"level":"info","message":"GET /devices/751fdda8-7491-4754-8782-4d67e12dbc54? 200 13ms","method":"GET","requestID":"36e77040-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/751fdda8-7491-4754-8782-4d67e12dbc54?"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4a2d81302ef91dad7abd05ba4d6a63cf","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240464,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2NH0.9-QAnYIiauXm4LZbGGmmsIudZJhOdULNqTd4poyExQ0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4a2d81302ef91dad7abd05ba4d6a63cf","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"36e79750-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/13e7f31f-a823-4ae5-9391-68a56c813f70? 200 15ms","method":"GET","requestID":"36e79750-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":15,"status":200,"url":"/devices/13e7f31f-a823-4ae5-9391-68a56c813f70?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:21.374818554Z"}]},"request_id":"da57351c-9735-45e5-bd52-8bd0adff3675","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.213887} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979"},"level":"info","message":"Building connection plan","requestID":"ed0989116fa0ff912e4969ce2348ab10"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"86e2d749-2561-4e53-920a-7ed577990e93"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"d1fcfe50-a7a2-48e9-9073-759f4acc12a9"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"f51256a0-0337-48ce-94b5-c2efa9f777d1"}]},"level":"info","message":"Built pairwise service configurations","requestID":"ed0989116fa0ff912e4969ce2348ab10"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"ed0989116fa0ff912e4969ce2348ab10"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4a2d81302ef91dad7abd05ba4d6a63cf","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"36ea7d80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4a2d81302ef91dad7abd05ba4d6a63cf"} device-1 | {"level":"info","message":"GET /devices/13e7f31f-a823-4ae5-9391-68a56c813f70? 200 13ms","method":"GET","requestID":"4a2d81302ef91dad7abd05ba4d6a63cf","responseTime":13,"status":200,"url":"/devices/13e7f31f-a823-4ae5-9391-68a56c813f70?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/13e7f31f-a823-4ae5-9391-68a56c813f70? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4a2d81302ef91dad7abd05ba4d6a63cf"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.809394,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"36ea7d80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240463,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2M30.Twm5kuU_RIqwtoyKzLL0CERrY8hfUU00TGsrttqwZvg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"36ea7d80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"986f697e-d81b-4fdb-95b2-6b7de72b208b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.227608} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"006a7bb6-54b5-4ff9-bf0a-56f801d68c4a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.227858} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"36ea7d80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"36ea7d80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"36ea7d80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7'","requestID":"36ea7d80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7'","requestID":"36ea7d80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"36ea7d80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 39ms","method":"POST","requestID":"36ea7d80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"36ea7d80-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"ed0989116fa0ff912e4969ce2348ab10"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"36f700a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F751fdda8-7491-4754-8782-4d67e12dbc54","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"aa399e7f-8a2f-4df5-93ab-d40e61ad93f8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.3234453} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":23.578703,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"36f700a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"36f700a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":26,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"36f700a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/751fdda8-7491-4754-8782-4d67e12dbc54/signaling 200 30ms","method":"POST","requestID":"36f700a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/devices/751fdda8-7491-4754-8782-4d67e12dbc54/signaling"} device-1 | {"device":"751fdda8-7491-4754-8782-4d67e12dbc54","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"751fdda8-7491-4754-8782-4d67e12dbc54","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"36fc09b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1df6e20c-f69c-4815-810e-8f2126675739","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.3361769} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.777709,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"36fc09b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"36fc09b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"device":"13e7f31f-a823-4ae5-9391-68a56c813f70","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"13e7f31f-a823-4ae5-9391-68a56c813f70","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"36fc09b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/13e7f31f-a823-4ae5-9391-68a56c813f70/signaling 200 13ms","method":"POST","requestID":"36fc09b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/13e7f31f-a823-4ae5-9391-68a56c813f70/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 4839841382623826093 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:ft6I\r\na=ice-pwd:LWj6nKoAKLveeix9HIU6IkZc\r\na=ice-options:trickle\r\na=fingerprint:sha-256 5F:62:E4:35:FF:FD:8A:98:43:97:E1:8C:85:F7:2E:82:C5:C5:4B:33:BD:51:70:86:4B:44:7D:5F:28:E7:E7:22\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"13e7f31f-a823-4ae5-9391-68a56c813f70","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70'"} device-1 | {"content":{"sdp":"v=0\r\no=- 7252335822844312294 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:FenA\r\na=ice-pwd:RmuO30sGkVVenFcXYwjI2jEU\r\na=ice-options:trickle\r\na=fingerprint:sha-256 24:35:51:0E:3B:56:9C:BC:75:90:5A:95:A6:49:AC:3E:A7:58:FD:BD:AB:E3:E9:96:15:40:37:71:1D:6A:58:34\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"751fdda8-7491-4754-8782-4d67e12dbc54","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:207186810 1 udp 2113937151 2354eb34-b678-44fe-8da4-915ea5abf6e5.local 44572 typ host generation 0 ufrag FenA network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"751fdda8-7491-4754-8782-4d67e12dbc54","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:2289303813 1 udp 1677729535 141.24.211.56 44572 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag FenA network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"751fdda8-7491-4754-8782-4d67e12dbc54","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54'"} device-1 | {"content":{"candidate":"candidate:2692039713 1 udp 2113937151 3507b12b-e1f7-4778-92a6-c7c98870b8ee.local 53315 typ host generation 0 ufrag ft6I network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"13e7f31f-a823-4ae5-9391-68a56c813f70","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:609758814 1 udp 1677729535 141.24.211.56 53315 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag ft6I network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"13e7f31f-a823-4ae5-9391-68a56c813f70","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70'"} device-1 | {"device":"13e7f31f-a823-4ae5-9391-68a56c813f70","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"751fdda8-7491-4754-8782-4d67e12dbc54","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7865f834-1866-4bd4-965b-e1d7d3f5f5c7","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f497ffe0aeb7aadd1943fdb208276997","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"device":"13e7f31f-a823-4ae5-9391-68a56c813f70","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"751fdda8-7491-4754-8782-4d67e12dbc54","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f497ffe0aeb7aadd1943fdb208276997","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7"}}},"level":"info","message":"received a callback","requestID":"f497ffe0aeb7aadd1943fdb208276997"} device-1 | {"device":"13e7f31f-a823-4ae5-9391-68a56c813f70","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"751fdda8-7491-4754-8782-4d67e12dbc54","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"f497ffe0aeb7aadd1943fdb208276997","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"f497ffe0aeb7aadd1943fdb208276997"} device-1 | {"device":"751fdda8-7491-4754-8782-4d67e12dbc54","deviceName":"Internal Test Device","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"7865f834-1866-4bd4-965b-e1d7d3f5f5c7","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"7865f834-1866-4bd4-965b-e1d7d3f5f5c7","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7865f834-1866-4bd4-965b-e1d7d3f5f5c7","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b5eaeaabae80e6a60b9d39cb1b0ebac8","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"b5eaeaabae80e6a60b9d39cb1b0ebac8","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7"}}},"level":"info","message":"received a callback","requestID":"b5eaeaabae80e6a60b9d39cb1b0ebac8"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"37164870-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7865f834-1866-4bd4-965b-e1d7d3f5f5c7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"44cb75c2-b366-4d03-9142-a054fefd3262","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.507984} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.284533,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"37164870-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"37164870-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"37164870-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7 200 8ms","method":"GET","requestID":"37164870-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2NH0.9-QAnYIiauXm4LZbGGmmsIudZJhOdULNqTd4poyExQ0","level":"info","message":"auth send jwt","requestID":"7aa917bc87c7e0c18a0f986c778f2d54"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7aa917bc87c7e0c18a0f986c778f2d54","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 30ms","method":"POST","requestID":"b5eaeaabae80e6a60b9d39cb1b0ebac8","responseTime":30,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979","requestID":"7aa917bc87c7e0c18a0f986c778f2d54"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"371a1900-4c2a-11f0-a085-a5c7b3a0c4e5"} gateway-1 | {"time_local":"18/Jun/2025:09:54:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"b5eaeaabae80e6a60b9d39cb1b0ebac8"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.96411,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7aa917bc87c7e0c18a0f986c778f2d54","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240464,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2NH0.9-QAnYIiauXm4LZbGGmmsIudZJhOdULNqTd4poyExQ0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"7aa917bc87c7e0c18a0f986c778f2d54","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F751fdda8-7491-4754-8782-4d67e12dbc54","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d0f18e27-0dcd-4b0a-a10e-e9905c70346b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.534275} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.802432,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"371a1900-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"371a1900-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"371a1900-4c2a-11f0-a085-a5c7b3a0c4e5"} gateway-1 | {"time_local":"18/Jun/2025:09:54:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979 HTTP/1.1","status": "200","body_bytes_sent":"881","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7aa917bc87c7e0c18a0f986c778f2d54"} device-1 | {"level":"info","message":"POST /devices/751fdda8-7491-4754-8782-4d67e12dbc54/signaling 200 11ms","method":"POST","requestID":"371a1900-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/751fdda8-7491-4754-8782-4d67e12dbc54/signaling"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979","requestID":"7aa917bc87c7e0c18a0f986c778f2d54"} experiment-1 | {"level":"info","message":"GET /experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979 200 11ms","method":"GET","requestID":"7aa917bc87c7e0c18a0f986c778f2d54","responseTime":11,"status":200,"url":"/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"371c3be0-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2NH0.9-QAnYIiauXm4LZbGGmmsIudZJhOdULNqTd4poyExQ0","level":"info","message":"auth send jwt","requestID":"7eada52907c7c76d8b88a61dedf34b19"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7eada52907c7c76d8b88a61dedf34b19","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979","requestID":"7eada52907c7c76d8b88a61dedf34b19"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d729f475-5eaf-4ffc-a42f-23e47a342fcf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.5470982} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.711415,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7eada52907c7c76d8b88a61dedf34b19","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240464,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2NH0.9-QAnYIiauXm4LZbGGmmsIudZJhOdULNqTd4poyExQ0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7eada52907c7c76d8b88a61dedf34b19","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.257084,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"371c3be0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"371c3be0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"371c3be0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979"},"level":"info","message":"Attempting to finish experiment","requestID":"7eada52907c7c76d8b88a61dedf34b19"} device-1 | {"level":"info","message":"POST /devices/13e7f31f-a823-4ae5-9391-68a56c813f70/signaling 200 10ms","method":"POST","requestID":"371c3be0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/13e7f31f-a823-4ae5-9391-68a56c813f70/signaling"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"371de990-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.696993,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"371de990-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240464,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2NH0.9-QAnYIiauXm4LZbGGmmsIudZJhOdULNqTd4poyExQ0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"371de990-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7","device":"751fdda8-7491-4754-8782-4d67e12dbc54","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7","device":"13e7f31f-a823-4ae5-9391-68a56c813f70","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7865f834-1866-4bd4-965b-e1d7d3f5f5c7","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7865f834-1866-4bd4-965b-e1d7d3f5f5c7': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7865f834-1866-4bd4-965b-e1d7d3f5f5c7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"16553e53-b908-44ba-9abd-31098fb1c977","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.568172} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e669faa3-61d3-4093-895b-d391980c6255","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.5682964} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"30d6342d6349d765e0a93adcafbda81f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"30d6342d6349d765e0a93adcafbda81f","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b283b2eb430012b479679da95e80ef17","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b283b2eb430012b479679da95e80ef17","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7"}}},"level":"info","message":"received a callback","requestID":"30d6342d6349d765e0a93adcafbda81f"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"371de990-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7"}}},"level":"info","message":"received a callback","requestID":"b283b2eb430012b479679da95e80ef17"} device-1 | {"data":{"peerconnection":"7865f834-1866-4bd4-965b-e1d7d3f5f5c7","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"371de990-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7 204 30ms","method":"DELETE","requestID":"371de990-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":204,"url":"/peerconnections/7865f834-1866-4bd4-965b-e1d7d3f5f5c7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979"},"level":"info","message":"Successfully finished experiment","requestID":"7eada52907c7c76d8b88a61dedf34b19"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"372897f0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F751fdda8-7491-4754-8782-4d67e12dbc54","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"60cb7791-9906-46c2-9c38-bc5312a2fe02","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.6278028} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.471923,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"372897f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"372897f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"372897f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/751fdda8-7491-4754-8782-4d67e12dbc54/signaling 200 9ms","method":"POST","requestID":"372897f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/751fdda8-7491-4754-8782-4d67e12dbc54/signaling"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"c733640c-ed0c-458c-b207-16900c7a8633\" in room \"http://localhost/rooms/dfd2b083-2806-46da-a98a-70e9c0e426d9\"","requestID":"342f0700-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"ae39cbf1-1978-4f05-930a-194fa8212e57\" in room \"http://localhost/rooms/dfd2b083-2806-46da-a98a-70e9c0e426d9\"","requestID":"342f5520-4c2a-11f0-b702-8b8a85c3ad9a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"372e1630-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5329b9be-9f5f-46e0-83cb-f5fcd3da2979': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5329b9be-9f5f-46e0-83cb-f5fcd3da2979","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"6d00a63d-8272-4f5c-bc6c-b3a0776b7a3a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.6595995} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4b1f8581-080d-4f00-9a9e-4491bc2ab4d0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.6597831} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"7eada52907c7c76d8b88a61dedf34b19","responseTime":40,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13e7f31f-a823-4ae5-9391-68a56c813f70","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a6583aa3-7e82-4145-9646-3b9b9d9702a7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.66445} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.895224,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"372e1630-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"372e1630-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"372e1630-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/13e7f31f-a823-4ae5-9391-68a56c813f70/signaling 200 9ms","method":"POST","requestID":"372e1630-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/13e7f31f-a823-4ae5-9391-68a56c813f70/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979","requestID":"7eada52907c7c76d8b88a61dedf34b19"} gateway-1 | {"time_local":"18/Jun/2025:09:54:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.218","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7eada52907c7c76d8b88a61dedf34b19"} experiment-1 | {"level":"info","message":"DELETE /experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979 204 215ms","method":"DELETE","requestID":"7eada52907c7c76d8b88a61dedf34b19","responseTime":215,"status":204,"url":"/experiments/5329b9be-9f5f-46e0-83cb-f5fcd3da2979"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 191ms","method":"POST","requestID":"30d6342d6349d765e0a93adcafbda81f","responseTime":191,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.194","http_referrer":"","http_user_agent":"node-fetch","requestID":"30d6342d6349d765e0a93adcafbda81f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 190ms","method":"POST","requestID":"b283b2eb430012b479679da95e80ef17","responseTime":190,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.195","http_referrer":"","http_user_agent":"node-fetch","requestID":"b283b2eb430012b479679da95e80ef17"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2NH0.9-QAnYIiauXm4LZbGGmmsIudZJhOdULNqTd4poyExQ0","level":"info","message":"auth send jwt","requestID":"3dc081be3b50bb5c09f5fe584f3fded0"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3dc081be3b50bb5c09f5fe584f3fded0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"3dc081be3b50bb5c09f5fe584f3fded0"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.870596,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} gateway-1 | {"time_local":"18/Jun/2025:09:54:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3005","request_time":"1.022","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"cbdb152be48c0365c703f50e0c5268a3"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3dc081be3b50bb5c09f5fe584f3fded0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240464,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2NH0.9-QAnYIiauXm4LZbGGmmsIudZJhOdULNqTd4poyExQ0"} gateway-1 | {"time_local":"18/Jun/2025:09:54:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3005","request_time":"1.008","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"016b0a44ca93cf1196ad6529890ed3d3"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"3dc081be3b50bb5c09f5fe584f3fded0","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/13e7f31f-a823-4ae5-9391-68a56c813f70' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/751fdda8-7491-4754-8782-4d67e12dbc54' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1e3a4f9f-26a8-4750-852d-b811deadd2a8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.783512} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3dc081be3b50bb5c09f5fe584f3fded0","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"860133e1-17bb-4454-921a-ca5c35b06767","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.7876108} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"3dc081be3b50bb5c09f5fe584f3fded0","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"7d772459-26f5-40d6-b3b5-abe9a938273b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.7982085} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3720c962-70e6-4e2e-8a3a-5f1c4890a975","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.7983713} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"3dc081be3b50bb5c09f5fe584f3fded0","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:24.798191157Z"}]},"request_id":"9388a379-77f7-44aa-9e8f-c1c3448229fe","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.801733} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3dc081be3b50bb5c09f5fe584f3fded0","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"3dc081be3b50bb5c09f5fe584f3fded0"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"3dc081be3b50bb5c09f5fe584f3fded0","responseTime":38,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3dc081be3b50bb5c09f5fe584f3fded0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2NH0.9-QAnYIiauXm4LZbGGmmsIudZJhOdULNqTd4poyExQ0","level":"info","message":"auth send jwt","requestID":"5fa590c3ce2d21b5e0357291c39a266f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5fa590c3ce2d21b5e0357291c39a266f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"5fa590c3ce2d21b5e0357291c39a266f"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.699735,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:24Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5fa590c3ce2d21b5e0357291c39a266f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240464,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2NH0.9-QAnYIiauXm4LZbGGmmsIudZJhOdULNqTd4poyExQ0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5fa590c3ce2d21b5e0357291c39a266f","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ce8f5ede-c5fa-4db8-add1-cfab563a1ccb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.830263} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","method":"POST","requestID":"5fa590c3ce2d21b5e0357291c39a266f","responseTime":7,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1f63c904-a57a-45a5-b282-40100a782ab2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.834193} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"5fa590c3ce2d21b5e0357291c39a266f","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"4082c52e-790c-438c-bb81-5b1dd42a21aa","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.858139} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"88b659a7-dc97-45ef-80fd-49aa6894ecee","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.858343} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"5fa590c3ce2d21b5e0357291c39a266f","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:24.858108032Z"}]},"request_id":"8fe14e14-5188-4343-81ab-0eb0938a98f1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240464.862677} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"5fa590c3ce2d21b5e0357291c39a266f","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"5fa590c3ce2d21b5e0357291c39a266f"} gateway-1 | {"time_local":"18/Jun/2025:09:54:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.060","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5fa590c3ce2d21b5e0357291c39a266f"} device-1 | {"level":"info","message":"POST /devices? 201 57ms","method":"POST","requestID":"5fa590c3ce2d21b5e0357291c39a266f","responseTime":57,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2NX0.of0Y4EQCcu2rUHXhsNZ1w0SpEDY5jA2wtuDRF_skKak","level":"info","message":"auth send jwt","requestID":"1a7f9d124d82100a238bd1e128ac14b9"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1a7f9d124d82100a238bd1e128ac14b9","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"1a7f9d124d82100a238bd1e128ac14b9"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:25Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.843587,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:25Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"1a7f9d124d82100a238bd1e128ac14b9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240465,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2NX0.of0Y4EQCcu2rUHXhsNZ1w0SpEDY5jA2wtuDRF_skKak"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"1a7f9d124d82100a238bd1e128ac14b9","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:24.798191157Z"}]},"request_id":"83f18ff3-af26-4f68-b33d-1c59e7729dfa","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240465.8205898} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"1a7f9d124d82100a238bd1e128ac14b9","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"58b0b437-32e1-4ab2-947a-4280068e0248","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240465.8246694} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"1a7f9d124d82100a238bd1e128ac14b9","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:24.798191157Z"}]},"request_id":"afbdcd78-d621-4b03-b441-bee7e858bc6b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240465.8704684} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"1a7f9d124d82100a238bd1e128ac14b9","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"1a7f9d124d82100a238bd1e128ac14b9"} device-1 | {"level":"info","message":"PATCH /devices/8b7eaeba-0b84-4ecd-abde-befc011a3330 200 63ms","method":"PATCH","requestID":"1a7f9d124d82100a238bd1e128ac14b9","responseTime":63,"status":200,"url":"/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330"} gateway-1 | {"time_local":"18/Jun/2025:09:54:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/8b7eaeba-0b84-4ecd-abde-befc011a3330 HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.092","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"1a7f9d124d82100a238bd1e128ac14b9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2NX0.of0Y4EQCcu2rUHXhsNZ1w0SpEDY5jA2wtuDRF_skKak","level":"info","message":"auth send jwt","requestID":"9f912ed48a09ac07eccdc3b3715f8094"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9f912ed48a09ac07eccdc3b3715f8094","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"9f912ed48a09ac07eccdc3b3715f8094"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:25Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.679256,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:25Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9f912ed48a09ac07eccdc3b3715f8094","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240465,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2NX0.of0Y4EQCcu2rUHXhsNZ1w0SpEDY5jA2wtuDRF_skKak"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"9f912ed48a09ac07eccdc3b3715f8094","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"9f912ed48a09ac07eccdc3b3715f8094"} gateway-1 | {"time_local":"18/Jun/2025:09:54:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8b7eaeba-0b84-4ecd-abde-befc011a3330/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.037","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"9f912ed48a09ac07eccdc3b3715f8094"} device-1 | {"level":"info","message":"POST /devices/8b7eaeba-0b84-4ecd-abde-befc011a3330/websocket 200 34ms","method":"POST","requestID":"9f912ed48a09ac07eccdc3b3715f8094","responseTime":34,"status":200,"url":"/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"326c1b07ad06168487f45b6491fd17c5","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"326c1b07ad06168487f45b6491fd17c5","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"326c1b07ad06168487f45b6491fd17c5"} device-1 | {"level":"info","message":"OPTIONS /devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619/websocket 200 1ms","method":"OPTIONS","requestID":"326c1b07ad06168487f45b6491fd17c5","responseTime":1,"status":200,"url":"/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA","level":"info","message":"auth send jwt","requestID":"4166f973da646fac13fb15825fa149fe"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4166f973da646fac13fb15825fa149fe","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"4166f973da646fac13fb15825fa149fe"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.055506,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4166f973da646fac13fb15825fa149fe","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240467,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"4166f973da646fac13fb15825fa149fe","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"4166f973da646fac13fb15825fa149fe"} device-1 | {"level":"info","message":"POST /devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619/websocket 200 30ms","method":"POST","requestID":"4166f973da646fac13fb15825fa149fe","responseTime":30,"status":200,"url":"/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:54:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.035","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4166f973da646fac13fb15825fa149fe"} device-1 | {"level":"info","message":"device 'http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f7e1de82d86f9f6fa76785feb5a68d35","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f7e1de82d86f9f6fa76785feb5a68d35","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f7e1de82d86f9f6fa76785feb5a68d35"} device-1 | {"level":"info","message":"OPTIONS /devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619? 200 1ms","method":"OPTIONS","requestID":"f7e1de82d86f9f6fa76785feb5a68d35","responseTime":1,"status":200,"url":"/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA","level":"info","message":"auth send jwt","requestID":"f94743806c34839888b05e3fc2dff880"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f94743806c34839888b05e3fc2dff880","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"f94743806c34839888b05e3fc2dff880"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.662621,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f94743806c34839888b05e3fc2dff880","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240467,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f94743806c34839888b05e3fc2dff880","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:24.858108032Z"}]},"request_id":"47fb5797-3bf5-4d29-bdb1-415b6a857832","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.2886527} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"f94743806c34839888b05e3fc2dff880","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6e767f4a-52fd-4123-bb8a-b30b85833999","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.2938993} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"f94743806c34839888b05e3fc2dff880","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:24.858108032Z"}]},"request_id":"609fda07-5c95-4fe6-bc64-b9e29cb50522","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.3045635} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"f94743806c34839888b05e3fc2dff880","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"f94743806c34839888b05e3fc2dff880"} gateway-1 | {"time_local":"18/Jun/2025:09:54:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.031","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f94743806c34839888b05e3fc2dff880"} device-1 | {"level":"info","message":"PATCH /devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619? 200 27ms","method":"PATCH","requestID":"f94743806c34839888b05e3fc2dff880","responseTime":27,"status":200,"url":"/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA","level":"info","message":"auth send jwt","requestID":"acc27ce47168173e91e107996d29bbf1"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"acc27ce47168173e91e107996d29bbf1","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"acc27ce47168173e91e107996d29bbf1"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.777161,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"acc27ce47168173e91e107996d29bbf1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240467,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"acc27ce47168173e91e107996d29bbf1","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:24.798191157Z"}]},"request_id":"695839d0-f717-4f68-8a43-fa3000d9a6c4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.3267508} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"acc27ce47168173e91e107996d29bbf1","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"acc27ce47168173e91e107996d29bbf1"} gateway-1 | {"time_local":"18/Jun/2025:09:54:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8b7eaeba-0b84-4ecd-abde-befc011a3330? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"acc27ce47168173e91e107996d29bbf1"} device-1 | {"level":"info","message":"GET /devices/8b7eaeba-0b84-4ecd-abde-befc011a3330? 200 11ms","method":"GET","requestID":"acc27ce47168173e91e107996d29bbf1","responseTime":11,"status":200,"url":"/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA","level":"info","message":"auth send jwt","requestID":"7965157cde342b310146e92885e6d573"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7965157cde342b310146e92885e6d573","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7965157cde342b310146e92885e6d573"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.739359,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7965157cde342b310146e92885e6d573","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240467,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7965157cde342b310146e92885e6d573","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:24.858108032Z"}]},"request_id":"6bcdfbfe-a4c1-4488-b504-feb1c32fa91e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.3417885} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"7965157cde342b310146e92885e6d573","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7965157cde342b310146e92885e6d573"} device-1 | {"level":"info","message":"GET /devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619? 200 10ms","method":"GET","requestID":"7965157cde342b310146e92885e6d573","responseTime":10,"status":200,"url":"/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7965157cde342b310146e92885e6d573"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA","level":"info","message":"auth send jwt","requestID":"21348f583ece4530c919b41811f96c86"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"21348f583ece4530c919b41811f96c86","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"21348f583ece4530c919b41811f96c86"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.684058,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"21348f583ece4530c919b41811f96c86","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240467,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"21348f583ece4530c919b41811f96c86","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7"},"level":"info","message":"Attempting to run experiment","requestID":"21348f583ece4530c919b41811f96c86"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7"},"level":"info","message":"Attempting to book experiment","requestID":"21348f583ece4530c919b41811f96c86"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7"},"level":"info","message":"Successfully booked experiment","requestID":"21348f583ece4530c919b41811f96c86"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"38d69610-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"38d6e430-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.636854,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"38d69610-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240467,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"38d69610-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.962153,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"38d6e430-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240467,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"38d6e430-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:24.798191157Z"}]},"request_id":"1c603f3a-905c-4079-ae80-daeb7d4632a6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.4514074} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"38d69610-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:24.858108032Z"}]},"request_id":"be3d755b-15b9-4be3-8739-0e4339b6a701","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.4522336} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"38d6e430-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"38d69610-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/8b7eaeba-0b84-4ecd-abde-befc011a3330? 200 15ms","method":"GET","requestID":"38d69610-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":15,"status":200,"url":"/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"38d6e430-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619? 200 14ms","method":"GET","requestID":"38d6e430-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7"},"level":"info","message":"Setting up experiment","requestID":"21348f583ece4530c919b41811f96c86"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"21348f583ece4530c919b41811f96c86"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"21348f583ece4530c919b41811f96c86"} forwarding-1 | {"level":"info","message":"Participant \"1e03f5ad-fb6b-47eb-841c-ebd5faa8be0b\" in room \"http://localhost/rooms/9b311815-e287-44b0-aa14-b4c92c7e0e57\" did not answer hearbeat check, closing connection","requestID":"32e68170-4c2a-11f0-b702-8b8a85c3ad9a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7"},"level":"info","message":"Successfully locked booking for experiment","requestID":"21348f583ece4530c919b41811f96c86"} forwarding-1 | {"level":"info","message":"Participant \"9b921119-1da5-49b8-aaad-e97ba8e2c087\" in room \"http://localhost/rooms/9b311815-e287-44b0-aa14-b4c92c7e0e57\" did not answer hearbeat check, closing connection","requestID":"32ea7910-4c2a-11f0-b702-8b8a85c3ad9a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7"},"level":"info","message":"Successfully set up experiment","requestID":"21348f583ece4530c919b41811f96c86"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"38e5b140-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"38e5d850-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7"},"level":"info","message":"Successfully running experiment","requestID":"21348f583ece4530c919b41811f96c86"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.706473,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"38e5b140-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240467,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"38e5b140-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.544116,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"38e5d850-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240467,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"38e5d850-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:24.798191157Z"}]},"request_id":"f9d3d7b1-c69b-4149-90eb-87a3ad5ba551","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.5488381} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"38e5b140-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:24.858108032Z"}]},"request_id":"22958b27-c32b-429f-8f3a-a3ec2f91d3b6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.5495677} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"38e5d850-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"38e5b140-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/8b7eaeba-0b84-4ecd-abde-befc011a3330? 200 14ms","method":"GET","requestID":"38e5b140-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"38e5d850-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619? 200 13ms","method":"GET","requestID":"38e5d850-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F00bd3103-e86a-4f46-bd78-0a10a7ccaea7#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F00bd3103-e86a-4f46-bd78-0a10a7ccaea7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"48d7e31c-5287-4b5d-85e3-1919fb5c5c4d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.5570993} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1a9ec89c-617c-45f0-8b4a-0dc328ac941c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.5573497} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"38e84950-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"21348f583ece4530c919b41811f96c86","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"822adf4c-63aa-4bed-b725-c1f70ab3c8ab","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.5624928} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.835658,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"38e84950-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"38e84950-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"21348f583ece4530c919b41811f96c86"} gateway-1 | {"time_local":"18/Jun/2025:09:54:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"812","request_time":"0.242","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"21348f583ece4530c919b41811f96c86"} experiment-1 | {"level":"info","message":"POST /experiments? 201 238ms","method":"POST","requestID":"21348f583ece4530c919b41811f96c86","responseTime":238,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"38e84950-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/8b7eaeba-0b84-4ecd-abde-befc011a3330/signaling 200 34ms","method":"POST","requestID":"38e84950-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA","level":"info","message":"auth send jwt","requestID":"b234ef88877e7aaa157dfc5dc5657fd1"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"38edc790-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b234ef88877e7aaa157dfc5dc5657fd1","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"b234ef88877e7aaa157dfc5dc5657fd1"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.696568,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b234ef88877e7aaa157dfc5dc5657fd1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240467,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b234ef88877e7aaa157dfc5dc5657fd1","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a13ff760-2cb5-4edc-8867-bb5e8e9d3cd1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.59736} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.290866,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"38edc790-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"38edc790-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:24.798191157Z"}]},"request_id":"dbcff100-36ce-498b-ab1c-8c9148b0db37","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.601413} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"38edc790-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619/signaling 200 9ms","method":"POST","requestID":"38edc790-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"b234ef88877e7aaa157dfc5dc5657fd1","responseTime":3,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"21348f583ece4530c919b41811f96c86"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"b234ef88877e7aaa157dfc5dc5657fd1"} gateway-1 | {"time_local":"18/Jun/2025:09:54:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8b7eaeba-0b84-4ecd-abde-befc011a3330? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b234ef88877e7aaa157dfc5dc5657fd1"} device-1 | {"level":"info","message":"GET /devices/8b7eaeba-0b84-4ecd-abde-befc011a3330? 200 11ms","method":"GET","requestID":"b234ef88877e7aaa157dfc5dc5657fd1","responseTime":11,"status":200,"url":"/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330?"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"38ef9c50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"38efc360-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA","level":"info","message":"auth send jwt","requestID":"8ec929d597b77748ad50ade8ae462504"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Received request.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48744","level":"info","msg":"Sent response.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.667428,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:27Z"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"8ec929d597b77748ad50ade8ae462504","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8ec929d597b77748ad50ade8ae462504"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"38ef9c50-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240467,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"38ef9c50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.923387,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"38efc360-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240467,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"38efc360-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.797998,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8ec929d597b77748ad50ade8ae462504","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240467,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8ec929d597b77748ad50ade8ae462504","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:24.858108032Z"}]},"request_id":"dfed3d64-2422-4e1c-96a9-378c4c27f474","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.6409786} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:24.798191157Z"}]},"request_id":"663dcfa3-9f77-4cf3-8e03-d6cf10d9e02c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.6416912} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"38efc360-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"38ef9c50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:24.858108032Z"}]},"request_id":"9dc2cb64-17ef-4efa-bc3f-22ea859cd098","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.6424582} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8ec929d597b77748ad50ade8ae462504","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"38efc360-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619? 200 41ms","method":"GET","requestID":"38efc360-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":41,"status":200,"url":"/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"38ef9c50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/8b7eaeba-0b84-4ecd-abde-befc011a3330? 200 43ms","method":"GET","requestID":"38ef9c50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":43,"status":200,"url":"/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8ec929d597b77748ad50ade8ae462504"} gateway-1 | {"time_local":"18/Jun/2025:09:54:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8ec929d597b77748ad50ade8ae462504"} device-1 | {"level":"info","message":"GET /devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619? 200 15ms","method":"GET","requestID":"8ec929d597b77748ad50ade8ae462504","responseTime":15,"status":200,"url":"/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7"},"level":"info","message":"Building connection plan","requestID":"21348f583ece4530c919b41811f96c86"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"b3ffe90b-e24c-4ca7-9003-5cd622a01777"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"9c689f8c-b592-48b0-8508-b2f66ee23f3b"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"62c713cd-c007-44d2-b6ca-7089668e0f10"}]},"level":"info","message":"Built pairwise service configurations","requestID":"21348f583ece4530c919b41811f96c86"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"21348f583ece4530c919b41811f96c86"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"38f6a130-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.640911,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"38f6a130-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240467,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2N30.4lU1Q2N9BVXizn213dBaN4N9apbAr7LxhQS1Cd1rhuA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"38f6a130-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"07b87da3-62ae-4519-bb1d-3979f143366d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.681444} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"65cbbd5a-7b66-49c5-8554-980a340d5d96","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.6851897} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"38f6a130-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"38f6a130-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"38f6a130-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/ba75e251-b147-4226-ac5d-084d274ab02c'","requestID":"38f6a130-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ba75e251-b147-4226-ac5d-084d274ab02c'","requestID":"38f6a130-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"38f6a130-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 59ms","method":"POST","requestID":"38f6a130-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":59,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"38f6a130-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"21348f583ece4530c919b41811f96c86"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3903e7a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"429185af-21ca-4e12-82a1-afdf49f442ab","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.7424374} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.633664,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3903e7a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"3903e7a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3903e7a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/8b7eaeba-0b84-4ecd-abde-befc011a3330/signaling 200 8ms","method":"POST","requestID":"3903e7a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"39059550-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"84f5b333-8107-4aef-a076-1c03a8f33606","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240467.7533107} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.403494,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"39059550-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"39059550-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"39059550-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619/signaling 200 9ms","method":"POST","requestID":"39059550-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619/signaling"} device-1 | {"device":"dbeee0ff-b94e-4e5d-bcad-b83d8d778619","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"dbeee0ff-b94e-4e5d-bcad-b83d8d778619","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"content":{"sdp":"v=0\r\no=- 2517583357672297636 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:lbfv\r\na=ice-pwd:WqoRkkK9kn38Myq5j55+l781\r\na=ice-options:trickle\r\na=fingerprint:sha-256 01:41:8D:8D:8C:8A:8A:16:0A:20:31:A4:83:DF:41:D0:E1:5B:E7:7E:7C:C7:91:C7:DB:6D:AE:48:F4:4D:4B:04\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"dbeee0ff-b94e-4e5d-bcad-b83d8d778619","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} forwarding-1 | {"level":"info","message":"Participant \"c733640c-ed0c-458c-b207-16900c7a8633\" in room \"http://localhost/rooms/dfd2b083-2806-46da-a98a-70e9c0e426d9\" did not answer hearbeat check, closing connection","requestID":"342f0700-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"ae39cbf1-1978-4f05-930a-194fa8212e57\" in room \"http://localhost/rooms/dfd2b083-2806-46da-a98a-70e9c0e426d9\" did not answer hearbeat check, closing connection","requestID":"342f5520-4c2a-11f0-b702-8b8a85c3ad9a"} device-1 | {"device":"8b7eaeba-0b84-4ecd-abde-befc011a3330","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"ba75e251-b147-4226-ac5d-084d274ab02c","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"8b7eaeba-0b84-4ecd-abde-befc011a3330","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"8b7eaeba-0b84-4ecd-abde-befc011a3330","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"8b7eaeba-0b84-4ecd-abde-befc011a3330","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"8b7eaeba-0b84-4ecd-abde-befc011a3330","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ba75e251-b147-4226-ac5d-084d274ab02c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ba75e251-b147-4226-ac5d-084d274ab02c","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"6cef02e3a49946baadbcb282a919d25f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6cef02e3a49946baadbcb282a919d25f","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/ba75e251-b147-4226-ac5d-084d274ab02c"}}},"level":"info","message":"received a callback","requestID":"6cef02e3a49946baadbcb282a919d25f"} device-1 | {"content":{"candidate":"candidate:3443422693 1 udp 2113937151 99a76b46-7886-4794-b744-91fd2ff859c4.local 55214 typ host generation 0 ufrag lbfv network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"dbeee0ff-b94e-4e5d-bcad-b83d8d778619","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:1578489078 1 udp 1677729535 141.24.211.56 55214 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag lbfv network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"dbeee0ff-b94e-4e5d-bcad-b83d8d778619","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"6cef02e3a49946baadbcb282a919d25f","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch","requestID":"6cef02e3a49946baadbcb282a919d25f"} device-1 | {"device":"dbeee0ff-b94e-4e5d-bcad-b83d8d778619","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"dbeee0ff-b94e-4e5d-bcad-b83d8d778619","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"8b7eaeba-0b84-4ecd-abde-befc011a3330","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"dbeee0ff-b94e-4e5d-bcad-b83d8d778619","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"8b7eaeba-0b84-4ecd-abde-befc011a3330","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619'"} device-1 | {"data":{"peerconnection":"ba75e251-b147-4226-ac5d-084d274ab02c","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"ba75e251-b147-4226-ac5d-084d274ab02c","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ba75e251-b147-4226-ac5d-084d274ab02c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ba75e251-b147-4226-ac5d-084d274ab02c","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"af5e1f61a887d37a1081742eb24eaccd","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"af5e1f61a887d37a1081742eb24eaccd","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/ba75e251-b147-4226-ac5d-084d274ab02c"}}},"level":"info","message":"received a callback","requestID":"af5e1f61a887d37a1081742eb24eaccd"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"3a3eb190-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:29Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fba75e251-b147-4226-ac5d-084d274ab02c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d2169723-6de8-404f-97f2-7784bc1c7a74","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240469.8065867} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.677904,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ba75e251-b147-4226-ac5d-084d274ab02c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3a3eb190-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ba75e251-b147-4226-ac5d-084d274ab02c","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"3a3eb190-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"3a3eb190-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/ba75e251-b147-4226-ac5d-084d274ab02c 200 9ms","method":"GET","requestID":"3a3eb190-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/peerconnections/ba75e251-b147-4226-ac5d-084d274ab02c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"af5e1f61a887d37a1081742eb24eaccd","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"af5e1f61a887d37a1081742eb24eaccd"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3a423400-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:29Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"faba5608-3132-4184-b8e8-7f584b41c696","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240469.8291047} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.871356,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3a423400-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"3a423400-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3a423400-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/8b7eaeba-0b84-4ecd-abde-befc011a3330/signaling 200 9ms","method":"POST","requestID":"3a423400-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3a43e1b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:29Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b68d7c3c-e83e-4dc1-9b1e-3d752a99f7c2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240469.8398154} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.208839,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3a43e1b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3a43e1b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3a43e1b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619/signaling 200 9ms","method":"POST","requestID":"3a43e1b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2OX0.Ez8B018mBRG0EmSobZo92qSvhY7IIBHaTdojAIvNXY8","level":"info","message":"auth send jwt","requestID":"f88eb98c5529f0ac21f21154381515f3"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f88eb98c5529f0ac21f21154381515f3","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7","requestID":"f88eb98c5529f0ac21f21154381515f3"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.05033,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f88eb98c5529f0ac21f21154381515f3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240469,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2OX0.Ez8B018mBRG0EmSobZo92qSvhY7IIBHaTdojAIvNXY8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"f88eb98c5529f0ac21f21154381515f3","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7","requestID":"f88eb98c5529f0ac21f21154381515f3"} gateway-1 | {"time_local":"18/Jun/2025:09:54:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7 HTTP/1.1","status": "200","body_bytes_sent":"885","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f88eb98c5529f0ac21f21154381515f3"} experiment-1 | {"level":"info","message":"GET /experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7 200 11ms","method":"GET","requestID":"f88eb98c5529f0ac21f21154381515f3","responseTime":11,"status":200,"url":"/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2OX0.Ez8B018mBRG0EmSobZo92qSvhY7IIBHaTdojAIvNXY8","level":"info","message":"auth send jwt","requestID":"892306d62044adcb4c738895f09098fe"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"892306d62044adcb4c738895f09098fe","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7","requestID":"892306d62044adcb4c738895f09098fe"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.6636,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:29Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"892306d62044adcb4c738895f09098fe","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240469,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2OX0.Ez8B018mBRG0EmSobZo92qSvhY7IIBHaTdojAIvNXY8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"892306d62044adcb4c738895f09098fe","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7"},"level":"info","message":"Attempting to finish experiment","requestID":"892306d62044adcb4c738895f09098fe"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"3a59b3a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.643706,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:29Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ba75e251-b147-4226-ac5d-084d274ab02c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3a59b3a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/ba75e251-b147-4226-ac5d-084d274ab02c","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240469,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ2OX0.Ez8B018mBRG0EmSobZo92qSvhY7IIBHaTdojAIvNXY8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3a59b3a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/ba75e251-b147-4226-ac5d-084d274ab02c","device":"dbeee0ff-b94e-4e5d-bcad-b83d8d778619","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"8b7eaeba-0b84-4ecd-abde-befc011a3330","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"8b7eaeba-0b84-4ecd-abde-befc011a3330","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"8b7eaeba-0b84-4ecd-abde-befc011a3330","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ba75e251-b147-4226-ac5d-084d274ab02c' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/ba75e251-b147-4226-ac5d-084d274ab02c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ba75e251-b147-4226-ac5d-084d274ab02c","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fba75e251-b147-4226-ac5d-084d274ab02c': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fba75e251-b147-4226-ac5d-084d274ab02c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"6de024fe-e4bc-4144-b0a9-c6200f39501d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240469.995662} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c32e5512-1878-49ec-976c-59a2bb3d20e4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240469.9959376} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b77b1caf58484582c2bab3f765e1d18a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b77b1caf58484582c2bab3f765e1d18a","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2fcbc55bfce08e5d789dcd58b729419c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ba75e251-b147-4226-ac5d-084d274ab02c"}}},"level":"info","message":"received a callback","requestID":"b77b1caf58484582c2bab3f765e1d18a"} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"3a59b3a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2fcbc55bfce08e5d789dcd58b729419c","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ba75e251-b147-4226-ac5d-084d274ab02c"}}},"level":"info","message":"received a callback","requestID":"2fcbc55bfce08e5d789dcd58b729419c"} device-1 | {"data":{"peerconnection":"ba75e251-b147-4226-ac5d-084d274ab02c","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"3a59b3a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/ba75e251-b147-4226-ac5d-084d274ab02c 204 62ms","method":"DELETE","requestID":"3a59b3a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":62,"status":204,"url":"/peerconnections/ba75e251-b147-4226-ac5d-084d274ab02c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7"},"level":"info","message":"Successfully finished experiment","requestID":"892306d62044adcb4c738895f09098fe"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3a696b10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:30Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b7eaeba-0b84-4ecd-abde-befc011a3330","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6360f93f-397d-41ad-bf7a-46346e067efc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240470.0856085} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.444533,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3a696b10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"3a696b10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3a696b10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/8b7eaeba-0b84-4ecd-abde-befc011a3330/signaling 200 9ms","method":"POST","requestID":"3a696b10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F00bd3103-e86a-4f46-bd78-0a10a7ccaea7': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F00bd3103-e86a-4f46-bd78-0a10a7ccaea7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"8d6e20cd-eb3c-4f39-a07f-64ad10e84e1b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240470.090828} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d659e466-0f74-4b88-88b8-7f36b47e85bc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240470.0911288} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"892306d62044adcb4c738895f09098fe","responseTime":38,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3a6b3fd0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:30Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbeee0ff-b94e-4e5d-bcad-b83d8d778619","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"25f3357c-a50a-4ef6-a129-d508cf8f5b2e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240470.0974693} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.433468,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3a6b3fd0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"3a6b3fd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3a6b3fd0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619/signaling 200 9ms","method":"POST","requestID":"3a6b3fd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3MH0.GMu7JmrzFoDMgU-SOljP-IY6LMVEh5J2fevJjIpttgk","level":"info","message":"auth send jwt","requestID":"478c69b6d4cd97c06f2aba2a26408ff2"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"478c69b6d4cd97c06f2aba2a26408ff2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"478c69b6d4cd97c06f2aba2a26408ff2"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.76114,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"478c69b6d4cd97c06f2aba2a26408ff2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240470,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3MH0.GMu7JmrzFoDMgU-SOljP-IY6LMVEh5J2fevJjIpttgk"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"478c69b6d4cd97c06f2aba2a26408ff2","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"55e19e1a-ccfb-4fb8-92fd-922a65ce16ce","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240470.1509867} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"478c69b6d4cd97c06f2aba2a26408ff2","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b3935b5d-0b9f-4083-9a7b-792ba3d338d2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240470.1550558} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"478c69b6d4cd97c06f2aba2a26408ff2","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"ab3e0882-d01f-4b1a-984e-9e3ace49a2f5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240470.1886537} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"72316223-6c14-4637-a4e5-7bfd2fad4cc3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240470.1888127} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"478c69b6d4cd97c06f2aba2a26408ff2","responseTime":36,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:30.188634410Z"}]},"request_id":"e6c1c58a-ee60-4926-945b-87a65129be35","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240470.192653} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"478c69b6d4cd97c06f2aba2a26408ff2","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"478c69b6d4cd97c06f2aba2a26408ff2"} gateway-1 | {"time_local":"18/Jun/2025:09:54:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.064","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"478c69b6d4cd97c06f2aba2a26408ff2"} device-1 | {"level":"info","message":"POST /devices? 201 59ms","method":"POST","requestID":"478c69b6d4cd97c06f2aba2a26408ff2","responseTime":59,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3MH0.GMu7JmrzFoDMgU-SOljP-IY6LMVEh5J2fevJjIpttgk","level":"info","message":"auth send jwt","requestID":"067e3a3dd4cbe8e49ee0bd9034b0089a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"067e3a3dd4cbe8e49ee0bd9034b0089a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"067e3a3dd4cbe8e49ee0bd9034b0089a"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7","requestID":"892306d62044adcb4c738895f09098fe"} gateway-1 | {"time_local":"18/Jun/2025:09:54:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.236","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"892306d62044adcb4c738895f09098fe"} gateway-1 | {"time_local":"18/Jun/2025:09:54:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3006","request_time":"4.313","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"b0ee15553f8614f5b254679cf75b9380"} experiment-1 | {"level":"info","message":"DELETE /experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7 204 258ms","method":"DELETE","requestID":"892306d62044adcb4c738895f09098fe","responseTime":258,"status":204,"url":"/experiments/00bd3103-e86a-4f46-bd78-0a10a7ccaea7"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:30Z"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 230ms","method":"POST","requestID":"b77b1caf58484582c2bab3f765e1d18a","responseTime":230,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.233","http_referrer":"","http_user_agent":"node-fetch","requestID":"b77b1caf58484582c2bab3f765e1d18a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 229ms","method":"POST","requestID":"2fcbc55bfce08e5d789dcd58b729419c","responseTime":229,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.232","http_referrer":"","http_user_agent":"node-fetch","requestID":"2fcbc55bfce08e5d789dcd58b729419c"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":2.545938,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"067e3a3dd4cbe8e49ee0bd9034b0089a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240470,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3MH0.GMu7JmrzFoDMgU-SOljP-IY6LMVEh5J2fevJjIpttgk"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"067e3a3dd4cbe8e49ee0bd9034b0089a","responseTime":31,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:54:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3199","request_time":"2.991","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"19b6198b955060f63670476df09115c4"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/8b7eaeba-0b84-4ecd-abde-befc011a3330' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"89e126d9-82e5-4fb0-b852-6e22a67f038c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240470.2485063} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"067e3a3dd4cbe8e49ee0bd9034b0089a","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/dbeee0ff-b94e-4e5d-bcad-b83d8d778619' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d3b32f4b-0bee-4749-865d-72684635eca8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240470.2772756} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"067e3a3dd4cbe8e49ee0bd9034b0089a","responseTime":7,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"b1ba4f28-4d53-4843-a5f5-8e80a301ed11","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240470.291189} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cec553fb-20c6-4ca4-a5ca-4140ff4d57ed","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240470.291259} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"067e3a3dd4cbe8e49ee0bd9034b0089a","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:30.291166596Z"}]},"request_id":"4ed6f5a3-cca6-4b7a-a85c-eb806925f9ea","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240470.2956178} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"067e3a3dd4cbe8e49ee0bd9034b0089a","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"067e3a3dd4cbe8e49ee0bd9034b0089a"} device-1 | {"level":"info","message":"POST /devices? 201 98ms","method":"POST","requestID":"067e3a3dd4cbe8e49ee0bd9034b0089a","responseTime":98,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.102","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"067e3a3dd4cbe8e49ee0bd9034b0089a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ad3e28a8fddc5f67ba0ff0f064804dda","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ad3e28a8fddc5f67ba0ff0f064804dda","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ad3e28a8fddc5f67ba0ff0f064804dda"} device-1 | {"level":"info","message":"OPTIONS /devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6/websocket 200 1ms","method":"OPTIONS","requestID":"ad3e28a8fddc5f67ba0ff0f064804dda","responseTime":1,"status":200,"url":"/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"6997716e70e201bf06850e72f7484eb6","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6997716e70e201bf06850e72f7484eb6","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/5acf6f9e-15a9-4f36-8892-21957fe86202/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6997716e70e201bf06850e72f7484eb6"} device-1 | {"level":"info","message":"OPTIONS /devices/5acf6f9e-15a9-4f36-8892-21957fe86202/websocket 200 0ms","method":"OPTIONS","requestID":"6997716e70e201bf06850e72f7484eb6","responseTime":0,"status":200,"url":"/devices/5acf6f9e-15a9-4f36-8892-21957fe86202/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc","level":"info","message":"auth send jwt","requestID":"4c7ab45b804ab9d484545cc7e095fa8c"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4c7ab45b804ab9d484545cc7e095fa8c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"4c7ab45b804ab9d484545cc7e095fa8c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc","level":"info","message":"auth send jwt","requestID":"4b523e96e659243d85179ad5100b8a40"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4b523e96e659243d85179ad5100b8a40","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:32Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"4b523e96e659243d85179ad5100b8a40"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.31515,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:32Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4c7ab45b804ab9d484545cc7e095fa8c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240472,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"4c7ab45b804ab9d484545cc7e095fa8c","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:32Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.672546,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:32Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4b523e96e659243d85179ad5100b8a40","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240472,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"4b523e96e659243d85179ad5100b8a40","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"4c7ab45b804ab9d484545cc7e095fa8c"} gateway-1 | {"time_local":"18/Jun/2025:09:54:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.047","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4c7ab45b804ab9d484545cc7e095fa8c"} device-1 | {"level":"info","message":"POST /devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6/websocket 200 41ms","method":"POST","requestID":"4c7ab45b804ab9d484545cc7e095fa8c","responseTime":41,"status":200,"url":"/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"4b523e96e659243d85179ad5100b8a40"} gateway-1 | {"time_local":"18/Jun/2025:09:54:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/5acf6f9e-15a9-4f36-8892-21957fe86202/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.057","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4b523e96e659243d85179ad5100b8a40"} device-1 | {"level":"info","message":"POST /devices/5acf6f9e-15a9-4f36-8892-21957fe86202/websocket 200 49ms","method":"POST","requestID":"4b523e96e659243d85179ad5100b8a40","responseTime":49,"status":200,"url":"/devices/5acf6f9e-15a9-4f36-8892-21957fe86202/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"aac94a48534a403022ff58fa0c797459","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"aac94a48534a403022ff58fa0c797459","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"device 'http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202' connected"} device-1 | {"level":"info","message":"OPTIONS /devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6? 200 1ms","method":"OPTIONS","requestID":"aac94a48534a403022ff58fa0c797459","responseTime":1,"status":200,"url":"/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"aac94a48534a403022ff58fa0c797459"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc","level":"info","message":"auth send jwt","requestID":"4bdc18d57cb34a7b42255c6f92c54216"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4bdc18d57cb34a7b42255c6f92c54216","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"4bdc18d57cb34a7b42255c6f92c54216"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:32Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.760612,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:32Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4bdc18d57cb34a7b42255c6f92c54216","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240472,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"33e0fd279c7dc1060475ecc53fe0b0df","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4bdc18d57cb34a7b42255c6f92c54216","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"33e0fd279c7dc1060475ecc53fe0b0df","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/5acf6f9e-15a9-4f36-8892-21957fe86202? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"33e0fd279c7dc1060475ecc53fe0b0df"} device-1 | {"level":"info","message":"OPTIONS /devices/5acf6f9e-15a9-4f36-8892-21957fe86202? 200 1ms","method":"OPTIONS","requestID":"33e0fd279c7dc1060475ecc53fe0b0df","responseTime":1,"status":200,"url":"/devices/5acf6f9e-15a9-4f36-8892-21957fe86202?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:30.188634410Z"}]},"request_id":"e8bfb789-9934-48bd-b1f2-fb95b027fe8e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240472.780691} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc","level":"info","message":"auth send jwt","requestID":"87981b006404115c68a0c7137b233d71"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4bdc18d57cb34a7b42255c6f92c54216","responseTime":2,"status":200,"url":"/relations/query"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"87981b006404115c68a0c7137b233d71","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"87981b006404115c68a0c7137b233d71"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"742057ef-40be-4a8a-ac39-b29763341a86","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240472.7851691} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:32Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"4bdc18d57cb34a7b42255c6f92c54216","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.874258,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:32Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"87981b006404115c68a0c7137b233d71","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240472,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"87981b006404115c68a0c7137b233d71","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:30.188634410Z"}]},"request_id":"90444c96-97bf-44dc-a57c-ad6b73e62c52","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240472.7958508} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","method":"POST","requestID":"4bdc18d57cb34a7b42255c6f92c54216","responseTime":7,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"4bdc18d57cb34a7b42255c6f92c54216"} device-1 | {"level":"info","message":"PATCH /devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6? 200 33ms","method":"PATCH","requestID":"4bdc18d57cb34a7b42255c6f92c54216","responseTime":33,"status":200,"url":"/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:30.291166596Z"}]},"request_id":"1c9a4571-eb26-4ce1-a08c-97023105f2df","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240472.809203} authorization-1 | {"level":"info","message":"POST /relations/query 200 15ms","method":"POST","requestID":"87981b006404115c68a0c7137b233d71","responseTime":15,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f9ab94e3-6a55-4f84-8e2f-d020899007b2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240472.8137813} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"87981b006404115c68a0c7137b233d71","responseTime":3,"status":200,"url":"/relations/update"} gateway-1 | {"time_local":"18/Jun/2025:09:54:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.036","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4bdc18d57cb34a7b42255c6f92c54216"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:30.291166596Z"}]},"request_id":"f17af566-2709-499d-8c09-6aeb69ed3129","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240472.8230407} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"87981b006404115c68a0c7137b233d71","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"87981b006404115c68a0c7137b233d71"} gateway-1 | {"time_local":"18/Jun/2025:09:54:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/5acf6f9e-15a9-4f36-8892-21957fe86202? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.045","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"87981b006404115c68a0c7137b233d71"} device-1 | {"level":"info","message":"PATCH /devices/5acf6f9e-15a9-4f36-8892-21957fe86202? 200 42ms","method":"PATCH","requestID":"87981b006404115c68a0c7137b233d71","responseTime":42,"status":200,"url":"/devices/5acf6f9e-15a9-4f36-8892-21957fe86202?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc","level":"info","message":"auth send jwt","requestID":"f8c51045734e4f79ed0a968dfaf7f32c"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f8c51045734e4f79ed0a968dfaf7f32c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"f8c51045734e4f79ed0a968dfaf7f32c"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:32Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.72952,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f8c51045734e4f79ed0a968dfaf7f32c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240472,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f8c51045734e4f79ed0a968dfaf7f32c","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:30.188634410Z"}]},"request_id":"d6d27d55-cdda-4560-bb39-0b13149b7902","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240472.8397443} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"f8c51045734e4f79ed0a968dfaf7f32c","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"f8c51045734e4f79ed0a968dfaf7f32c"} device-1 | {"level":"info","message":"GET /devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6? 200 35ms","method":"GET","requestID":"f8c51045734e4f79ed0a968dfaf7f32c","responseTime":35,"status":200,"url":"/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f8c51045734e4f79ed0a968dfaf7f32c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc","level":"info","message":"auth send jwt","requestID":"174c29ddc660f8e27730ed14e82b1ea5"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"174c29ddc660f8e27730ed14e82b1ea5","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"174c29ddc660f8e27730ed14e82b1ea5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:32Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.662406,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"174c29ddc660f8e27730ed14e82b1ea5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240472,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"174c29ddc660f8e27730ed14e82b1ea5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:30.291166596Z"}]},"request_id":"752e8b9f-23e4-4328-a71e-55a4268fe886","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240472.8779113} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"174c29ddc660f8e27730ed14e82b1ea5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"174c29ddc660f8e27730ed14e82b1ea5"} gateway-1 | {"time_local":"18/Jun/2025:09:54:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5acf6f9e-15a9-4f36-8892-21957fe86202? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"174c29ddc660f8e27730ed14e82b1ea5"} device-1 | {"level":"info","message":"GET /devices/5acf6f9e-15a9-4f36-8892-21957fe86202? 200 10ms","method":"GET","requestID":"174c29ddc660f8e27730ed14e82b1ea5","responseTime":10,"status":200,"url":"/devices/5acf6f9e-15a9-4f36-8892-21957fe86202?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc","level":"info","message":"auth send jwt","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:32Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":24.814452,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:32Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"86fb5e8b8dcf95bae3961fb87f70c08f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240472,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f","responseTime":27,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c0e16a8-467c-4e36-9619-292677a659c0"},"level":"info","message":"Attempting to run experiment","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c0e16a8-467c-4e36-9619-292677a659c0"},"level":"info","message":"Attempting to book experiment","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c0e16a8-467c-4e36-9619-292677a659c0"},"level":"info","message":"Successfully booked experiment","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3c232900-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3c235010-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:32Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.6289,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3c232900-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240472,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3c232900-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:32Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.735591,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3c235010-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240472,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"3c235010-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:30.188634410Z"}]},"request_id":"d3368f4a-8a8a-419b-8812-e558f935f765","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240472.9834404} authorization-1 | {"level":"info","message":"POST /relations/query 200 8ms","method":"POST","requestID":"3c232900-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:30.291166596Z"}]},"request_id":"deded377-0cbb-4b9b-9627-e0fd288641a0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240472.9915318} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3c235010-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3c232900-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6? 200 17ms","method":"GET","requestID":"3c232900-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":17,"status":200,"url":"/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3c235010-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/5acf6f9e-15a9-4f36-8892-21957fe86202? 200 18ms","method":"GET","requestID":"3c235010-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":18,"status":200,"url":"/devices/5acf6f9e-15a9-4f36-8892-21957fe86202?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c0e16a8-467c-4e36-9619-292677a659c0"},"level":"info","message":"Setting up experiment","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c0e16a8-467c-4e36-9619-292677a659c0"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c0e16a8-467c-4e36-9619-292677a659c0"},"level":"info","message":"Successfully locked booking for experiment","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c0e16a8-467c-4e36-9619-292677a659c0"},"level":"info","message":"Successfully set up experiment","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3c2b6660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3c2b8d70-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c0e16a8-467c-4e36-9619-292677a659c0"},"level":"info","message":"Successfully running experiment","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.670828,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3c2b6660-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240472,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3c2b6660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.584962,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3c2b8d70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240472,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3c2b8d70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:30.188634410Z"}]},"request_id":"ec989188-ee54-48ea-81e5-d3e278554566","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.0387394} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3c2b6660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:30.291166596Z"}]},"request_id":"fa4ee048-cd14-4197-93af-2a25526ea92b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.0393848} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3c2b8d70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3c2b6660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6? 200 13ms","method":"GET","requestID":"3c2b6660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3c2b8d70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/5acf6f9e-15a9-4f36-8892-21957fe86202? 200 12ms","method":"GET","requestID":"3c2b8d70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/5acf6f9e-15a9-4f36-8892-21957fe86202?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5c0e16a8-467c-4e36-9619-292677a659c0#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5c0e16a8-467c-4e36-9619-292677a659c0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"b06e639c-e48f-4952-89ce-3e82a4c83780","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.0462859} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3c2dd760-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2297d902-0f18-44e9-8bdb-97776100f6b8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.0464952} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7cf720a5-d3b3-43db-b18b-b084680668b6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.0520113} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.830521,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/5c0e16a8-467c-4e36-9619-292677a659c0","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3c2dd760-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} gateway-1 | {"time_local":"18/Jun/2025:09:54:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"778","request_time":"0.171","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f"} experiment-1 | {"level":"info","message":"POST /experiments? 201 169ms","method":"POST","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f","responseTime":169,"status":201,"url":"/experiments?"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"3c2dd760-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3c2dd760-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6/signaling 200 10ms","method":"POST","requestID":"3c2dd760-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3M30.D74VZLR6eztGRz5YZ_8-Gt33OEA7nnptga1DRTNLrtw","level":"info","message":"auth send jwt","requestID":"557f8b7955dc2a82788be4cb6fdc8850"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"557f8b7955dc2a82788be4cb6fdc8850","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"557f8b7955dc2a82788be4cb6fdc8850"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3c2fd330-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.094582,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"557f8b7955dc2a82788be4cb6fdc8850","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240473,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3M30.D74VZLR6eztGRz5YZ_8-Gt33OEA7nnptga1DRTNLrtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"557f8b7955dc2a82788be4cb6fdc8850","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"73a5e993-2c4b-4102-8df4-c2baac84c428","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.0650883} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.389645,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3c2fd330-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"3c2fd330-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:30.188634410Z"}]},"request_id":"624f6cab-3651-4d78-a987-f1fbd5bd12dd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.0673542} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"557f8b7955dc2a82788be4cb6fdc8850","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3c2fd330-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/5acf6f9e-15a9-4f36-8892-21957fe86202/signaling 200 13ms","method":"POST","requestID":"3c2fd330-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/5acf6f9e-15a9-4f36-8892-21957fe86202/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"557f8b7955dc2a82788be4cb6fdc8850"} gateway-1 | {"time_local":"18/Jun/2025:09:54:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"557f8b7955dc2a82788be4cb6fdc8850"} device-1 | {"level":"info","message":"GET /devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6? 200 14ms","method":"GET","requestID":"557f8b7955dc2a82788be4cb6fdc8850","responseTime":14,"status":200,"url":"/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c0e16a8-467c-4e36-9619-292677a659c0"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3c321d20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3c324430-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3M30.D74VZLR6eztGRz5YZ_8-Gt33OEA7nnptga1DRTNLrtw","level":"info","message":"auth send jwt","requestID":"9ddca92dfa44be268f18290913966170"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9ddca92dfa44be268f18290913966170","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"9ddca92dfa44be268f18290913966170"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.694842,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3c321d20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240472,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"3c321d20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.719387,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3c324430-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240472,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3c324430-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.59052,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9ddca92dfa44be268f18290913966170","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240473,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3M30.D74VZLR6eztGRz5YZ_8-Gt33OEA7nnptga1DRTNLrtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"9ddca92dfa44be268f18290913966170","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:30.291166596Z"}]},"request_id":"c991738c-7545-47a5-889f-ef19b3b86d13","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.0852067} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"3c324430-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:30.188634410Z"}]},"request_id":"f4d1e31c-9d4f-4b0b-9ba6-124805168100","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.0876474} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"3c321d20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:30.291166596Z"}]},"request_id":"a66d65db-bc02-4cbe-a050-3c3905818708","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.0898764} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"9ddca92dfa44be268f18290913966170","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3c324430-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/5acf6f9e-15a9-4f36-8892-21957fe86202? 200 16ms","method":"GET","requestID":"3c324430-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":16,"status":200,"url":"/devices/5acf6f9e-15a9-4f36-8892-21957fe86202?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3c321d20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6? 200 20ms","method":"GET","requestID":"3c321d20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":20,"status":200,"url":"/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"9ddca92dfa44be268f18290913966170"} gateway-1 | {"time_local":"18/Jun/2025:09:54:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5acf6f9e-15a9-4f36-8892-21957fe86202? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9ddca92dfa44be268f18290913966170"} device-1 | {"level":"info","message":"GET /devices/5acf6f9e-15a9-4f36-8892-21957fe86202? 200 16ms","method":"GET","requestID":"9ddca92dfa44be268f18290913966170","responseTime":16,"status":200,"url":"/devices/5acf6f9e-15a9-4f36-8892-21957fe86202?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c0e16a8-467c-4e36-9619-292677a659c0"},"level":"info","message":"Building connection plan","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"17f0211a-1ba9-4cde-883e-2aaeb41610dc"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"3ca54e75-d962-466a-abfd-d2e42206688b"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/file","uuid":"fe325a12-effa-4e8d-b0da-93d3e4963c15"}]},"level":"info","message":"Built pairwise service configurations","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"3c359f90-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.70036,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3c359f90-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240472,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Mn0.OUraGPM0Pu6Dn6GWvZ71uASZcob1HbA-TDOD4PKCdVc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3c359f90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"c8bdc9f4-854c-4497-92f3-65dad32d5330","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.1069274} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"211ed776-84ab-4fee-ace9-8f52eae02fce","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.1071022} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"3c359f90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"3c359f90-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"3c359f90-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60'","requestID":"3c359f90-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60'","requestID":"3c359f90-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"3c359f90-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 61ms","method":"POST","requestID":"3c359f90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":61,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"3c359f90-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c0e16a8-467c-4e36-9619-292677a659c0"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"86fb5e8b8dcf95bae3961fb87f70c08f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3c472bc0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} device-1 | {"device":"8d350c1f-78ed-4331-961e-b0e4b41bcbb6","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"23282bd1-6780-4f34-84ad-288af561c049","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.2182183} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.082058,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} device-1 | {"content":{"canTrickle":true},"device":"8d350c1f-78ed-4331-961e-b0e4b41bcbb6","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"device":"5acf6f9e-15a9-4f36-8892-21957fe86202","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"5acf6f9e-15a9-4f36-8892-21957fe86202","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3c472bc0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","method":"POST","requestID":"3c472bc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3c472bc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6/signaling 200 12ms","method":"POST","requestID":"3c472bc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3c4d4640-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"305aca74-60be-49ee-affd-9dee8f4744de","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.2570398} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.62092,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} device-1 | {"content":{"sdp":"v=0\r\no=- 4982080673373504515 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:f/eE\r\na=ice-pwd:l81gtzTcr+pe6d6FH3j8z523\r\na=ice-options:trickle\r\na=fingerprint:sha-256 EA:02:78:0D:74:05:C2:8C:13:CD:7D:F2:E4:40:61:C5:4F:7E:D3:5A:73:16:7A:AC:49:A4:47:5F:C1:B1:47:2B\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"5acf6f9e-15a9-4f36-8892-21957fe86202","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3c4d4640-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"3c4d4640-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3c4d4640-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/5acf6f9e-15a9-4f36-8892-21957fe86202/signaling 200 10ms","method":"POST","requestID":"3c4d4640-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/5acf6f9e-15a9-4f36-8892-21957fe86202/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 7647656416629700994 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:hGDh\r\na=ice-pwd:R74z+PrWikpT3U6EF1Z/Kk3P\r\na=ice-options:trickle\r\na=fingerprint:sha-256 9A:2F:C3:44:23:0A:16:89:02:7C:CC:35:D1:AA:FE:0B:5E:69:78:BE:D5:60:C6:E3:EA:59:B7:98:FE:89:1E:15\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"8d350c1f-78ed-4331-961e-b0e4b41bcbb6","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:1215983477 1 udp 2113937151 51c27a44-b9b3-46cd-976e-8377623a1764.local 39965 typ host generation 0 ufrag hGDh network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"8d350c1f-78ed-4331-961e-b0e4b41bcbb6","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:3679571558 1 udp 1677729535 141.24.211.56 39965 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag hGDh network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"8d350c1f-78ed-4331-961e-b0e4b41bcbb6","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6'"} device-1 | {"content":{"candidate":"candidate:753736316 1 udp 2113937151 20668a1a-c07b-4c45-a9bc-f5ff9c47d3d4.local 37979 typ host generation 0 ufrag f/eE network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"5acf6f9e-15a9-4f36-8892-21957fe86202","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:246650097 1 udp 1677729535 141.24.211.56 37979 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag f/eE network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"5acf6f9e-15a9-4f36-8892-21957fe86202","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202'"} device-1 | {"device":"5acf6f9e-15a9-4f36-8892-21957fe86202","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"97742b6c-7b91-410a-8eea-117629c5bc60","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"8d350c1f-78ed-4331-961e-b0e4b41bcbb6","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"8d350c1f-78ed-4331-961e-b0e4b41bcbb6","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b346d30b7146e125f6d3f7bce57243cf","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"device":"5acf6f9e-15a9-4f36-8892-21957fe86202","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b346d30b7146e125f6d3f7bce57243cf","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60"}}},"level":"info","message":"received a callback","requestID":"b346d30b7146e125f6d3f7bce57243cf"} device-1 | {"device":"5acf6f9e-15a9-4f36-8892-21957fe86202","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"8d350c1f-78ed-4331-961e-b0e4b41bcbb6","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"b346d30b7146e125f6d3f7bce57243cf","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"b346d30b7146e125f6d3f7bce57243cf"} device-1 | {"device":"8d350c1f-78ed-4331-961e-b0e4b41bcbb6","deviceName":"JS Device 1","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"97742b6c-7b91-410a-8eea-117629c5bc60","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"97742b6c-7b91-410a-8eea-117629c5bc60","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"97742b6c-7b91-410a-8eea-117629c5bc60","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b158382fb9cb5907c693137042157a5d","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b158382fb9cb5907c693137042157a5d","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60"}}},"level":"info","message":"received a callback","requestID":"b158382fb9cb5907c693137042157a5d"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"3c656220-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F97742b6c-7b91-410a-8eea-117629c5bc60","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"773512c6-8c1a-4ca6-9628-cf37728d58a4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.4156199} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.760579,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3c656220-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"3c656220-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"3c656220-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60 200 34ms","method":"GET","requestID":"3c656220-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 54ms","method":"POST","requestID":"b158382fb9cb5907c693137042157a5d","responseTime":54,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.057","http_referrer":"","http_user_agent":"node-fetch","requestID":"b158382fb9cb5907c693137042157a5d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3c6d0340-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a62577af-fe21-4be6-81cd-be97e76877cd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.4892602} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.00972,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3c6d0340-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"3c6d0340-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3c6d0340-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6/signaling 200 34ms","method":"POST","requestID":"3c6d0340-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3c72a890-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"68387805-452d-4702-8c76-76efb2a9b44e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.5041487} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.859907,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3c72a890-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"3c72a890-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3c72a890-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/5acf6f9e-15a9-4f36-8892-21957fe86202/signaling 200 13ms","method":"POST","requestID":"3c72a890-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/5acf6f9e-15a9-4f36-8892-21957fe86202/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3M30.D74VZLR6eztGRz5YZ_8-Gt33OEA7nnptga1DRTNLrtw","level":"info","message":"auth send jwt","requestID":"121ed4b67613aa84cda6ba7e61890fd1"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"121ed4b67613aa84cda6ba7e61890fd1","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/5c0e16a8-467c-4e36-9619-292677a659c0","requestID":"121ed4b67613aa84cda6ba7e61890fd1"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.278063,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5c0e16a8-467c-4e36-9619-292677a659c0","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"121ed4b67613aa84cda6ba7e61890fd1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/5c0e16a8-467c-4e36-9619-292677a659c0","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240473,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3M30.D74VZLR6eztGRz5YZ_8-Gt33OEA7nnptga1DRTNLrtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"121ed4b67613aa84cda6ba7e61890fd1","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/5c0e16a8-467c-4e36-9619-292677a659c0","requestID":"121ed4b67613aa84cda6ba7e61890fd1"} gateway-1 | {"time_local":"18/Jun/2025:09:54:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/5c0e16a8-467c-4e36-9619-292677a659c0 HTTP/1.1","status": "200","body_bytes_sent":"851","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"121ed4b67613aa84cda6ba7e61890fd1"} experiment-1 | {"level":"info","message":"GET /experiments/5c0e16a8-467c-4e36-9619-292677a659c0 200 11ms","method":"GET","requestID":"121ed4b67613aa84cda6ba7e61890fd1","responseTime":11,"status":200,"url":"/experiments/5c0e16a8-467c-4e36-9619-292677a659c0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3M30.D74VZLR6eztGRz5YZ_8-Gt33OEA7nnptga1DRTNLrtw","level":"info","message":"auth send jwt","requestID":"d070da36fbcccbfacbdc1abc6aeee8c6"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d070da36fbcccbfacbdc1abc6aeee8c6","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/5c0e16a8-467c-4e36-9619-292677a659c0","requestID":"d070da36fbcccbfacbdc1abc6aeee8c6"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.30627,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5c0e16a8-467c-4e36-9619-292677a659c0","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d070da36fbcccbfacbdc1abc6aeee8c6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/5c0e16a8-467c-4e36-9619-292677a659c0","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240473,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3M30.D74VZLR6eztGRz5YZ_8-Gt33OEA7nnptga1DRTNLrtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"d070da36fbcccbfacbdc1abc6aeee8c6","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c0e16a8-467c-4e36-9619-292677a659c0"},"level":"info","message":"Attempting to finish experiment","requestID":"d070da36fbcccbfacbdc1abc6aeee8c6"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"3c9d6210-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.909309,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3c9d6210-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240473,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3M30.D74VZLR6eztGRz5YZ_8-Gt33OEA7nnptga1DRTNLrtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3c9d6210-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60","device":"8d350c1f-78ed-4331-961e-b0e4b41bcbb6","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60","device":"5acf6f9e-15a9-4f36-8892-21957fe86202","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"97742b6c-7b91-410a-8eea-117629c5bc60","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F97742b6c-7b91-410a-8eea-117629c5bc60': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F97742b6c-7b91-410a-8eea-117629c5bc60","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"3e1814f3-c558-4cba-a850-ef98cae4c55a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.7961822} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9c4e13b7-ad3c-41f1-9d44-3d86403d18e1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.7962918} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"13823d3e839e82b929971722612a11e4","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"13823d3e839e82b929971722612a11e4","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"3c9d6210-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60"}}},"level":"info","message":"received a callback","requestID":"13823d3e839e82b929971722612a11e4"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0c53637dd6e910617b31a45053cca0f6","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0c53637dd6e910617b31a45053cca0f6","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60"}}},"level":"info","message":"received a callback","requestID":"0c53637dd6e910617b31a45053cca0f6"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"3c9d6210-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60 204 46ms","method":"DELETE","requestID":"3c9d6210-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":46,"status":204,"url":"/peerconnections/97742b6c-7b91-410a-8eea-117629c5bc60"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c0e16a8-467c-4e36-9619-292677a659c0"},"level":"info","message":"Successfully finished experiment","requestID":"d070da36fbcccbfacbdc1abc6aeee8c6"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3ca81070-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d350c1f-78ed-4331-961e-b0e4b41bcbb6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a978d9bb-4aed-4c7a-a745-69d9abb83d57","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.8561907} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.188402,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3ca81070-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3ca81070-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3ca81070-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6/signaling 200 13ms","method":"POST","requestID":"3ca81070-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3caa5a60-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2a68e25a-e712-4414-a334-d9fa2266a77d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.8644218} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5c0e16a8-467c-4e36-9619-292677a659c0': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5c0e16a8-467c-4e36-9619-292677a659c0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"4a130d60-9ddf-478e-9293-90a1489549d1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.8646567} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 21ms","method":"POST","requestID":"d070da36fbcccbfacbdc1abc6aeee8c6","responseTime":21,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5acf6f9e-15a9-4f36-8892-21957fe86202","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"12f83cda-856e-440b-9d93-cfbf88f7aef0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240473.8664684} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":1.968415,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3caa5a60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3caa5a60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3caa5a60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/5acf6f9e-15a9-4f36-8892-21957fe86202/signaling 200 8ms","method":"POST","requestID":"3caa5a60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/5acf6f9e-15a9-4f36-8892-21957fe86202/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/5c0e16a8-467c-4e36-9619-292677a659c0","requestID":"d070da36fbcccbfacbdc1abc6aeee8c6"} gateway-1 | {"time_local":"18/Jun/2025:09:54:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/5c0e16a8-467c-4e36-9619-292677a659c0 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.183","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d070da36fbcccbfacbdc1abc6aeee8c6"} experiment-1 | {"level":"info","message":"DELETE /experiments/5c0e16a8-467c-4e36-9619-292677a659c0 204 180ms","method":"DELETE","requestID":"d070da36fbcccbfacbdc1abc6aeee8c6","responseTime":180,"status":204,"url":"/experiments/5c0e16a8-467c-4e36-9619-292677a659c0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 170ms","method":"POST","requestID":"13823d3e839e82b929971722612a11e4","responseTime":170,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.173","http_referrer":"","http_user_agent":"node-fetch","requestID":"13823d3e839e82b929971722612a11e4"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 169ms","method":"POST","requestID":"0c53637dd6e910617b31a45053cca0f6","responseTime":169,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.173","http_referrer":"","http_user_agent":"node-fetch","requestID":"0c53637dd6e910617b31a45053cca0f6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3M30.D74VZLR6eztGRz5YZ_8-Gt33OEA7nnptga1DRTNLrtw","level":"info","message":"auth send jwt","requestID":"6199963391e4df7d4ac73cae76069b8e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6199963391e4df7d4ac73cae76069b8e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"6199963391e4df7d4ac73cae76069b8e"} gateway-1 | {"time_local":"18/Jun/2025:09:54:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2899","request_time":"1.237","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"abdd5d8992e8656f8adf9a6cf0cb419a"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.076506,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:33Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6199963391e4df7d4ac73cae76069b8e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240473,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3M30.D74VZLR6eztGRz5YZ_8-Gt33OEA7nnptga1DRTNLrtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6199963391e4df7d4ac73cae76069b8e","responseTime":5,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:54:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2901","request_time":"1.232","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ef1b2015a37cc55ed288cfd1062438a7"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/8d350c1f-78ed-4331-961e-b0e4b41bcbb6' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"531bab3a-defd-4d2f-8c78-57fc167a5bbe","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240474.0202377} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6199963391e4df7d4ac73cae76069b8e","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b1cd12cd-0cf8-45e4-bd9a-818d62880638","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240474.0240462} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"6199963391e4df7d4ac73cae76069b8e","responseTime":3,"status":200,"url":"/relations/update"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/5acf6f9e-15a9-4f36-8892-21957fe86202' closed"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"23644f56-e1c9-46b1-8f46-d248f5e5bf0d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240474.0362298} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2cf81144-9d23-4ecd-93af-e148be26eca8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240474.0364773} authorization-1 | {"level":"info","message":"POST /relations/update 200 42ms","method":"POST","requestID":"6199963391e4df7d4ac73cae76069b8e","responseTime":42,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:34.036188681Z"}]},"request_id":"23a032ed-26da-4d4e-8f99-97b1f4611560","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240474.0684283} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6199963391e4df7d4ac73cae76069b8e","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"6199963391e4df7d4ac73cae76069b8e"} device-1 | {"level":"info","message":"POST /devices? 201 99ms","method":"POST","requestID":"6199963391e4df7d4ac73cae76069b8e","responseTime":99,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.126","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6199963391e4df7d4ac73cae76069b8e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3NH0.8F98aAm1A1QqD3Kz1rNZ0zUI2xt-x1cTy82zqs3zUeo","level":"info","message":"auth send jwt","requestID":"2105132b99243d5f467c176122c31dd7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2105132b99243d5f467c176122c31dd7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"2105132b99243d5f467c176122c31dd7"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:34Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.693149,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:34Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2105132b99243d5f467c176122c31dd7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240474,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3NH0.8F98aAm1A1QqD3Kz1rNZ0zUI2xt-x1cTy82zqs3zUeo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2105132b99243d5f467c176122c31dd7","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f828d45f-a75d-4d38-a750-0826a0cc0814","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240474.1240163} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2105132b99243d5f467c176122c31dd7","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c4041e05-7d1c-48d2-9cae-000a5270293c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240474.1278365} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"2105132b99243d5f467c176122c31dd7","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"00e23171-a521-49ba-aeb2-a2730a5ff110","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240474.1361587} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6f402f0a-a118-4667-aee7-f21b14bf0776","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240474.1363046} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"2105132b99243d5f467c176122c31dd7","responseTime":10,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:34.136140652Z"}]},"request_id":"15ae75bb-a940-4aad-a8f1-32577f3306ac","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240474.1394002} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2105132b99243d5f467c176122c31dd7","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"2105132b99243d5f467c176122c31dd7"} device-1 | {"level":"info","message":"POST /devices? 201 89ms","method":"POST","requestID":"2105132b99243d5f467c176122c31dd7","responseTime":89,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.093","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2105132b99243d5f467c176122c31dd7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3NX0.qMEevEnJOB9UTqh286dWS7Lz9xs4kboGoCD5XNo6OCc","level":"info","message":"auth send jwt","requestID":"51f4dde036869983509a60568ad3424b"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"51f4dde036869983509a60568ad3424b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"51f4dde036869983509a60568ad3424b"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:35Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.775777,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:35Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"51f4dde036869983509a60568ad3424b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240475,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3NX0.qMEevEnJOB9UTqh286dWS7Lz9xs4kboGoCD5XNo6OCc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"51f4dde036869983509a60568ad3424b","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:34.136140652Z"}]},"request_id":"9a469f77-4f6e-4fe2-92bc-185b52426375","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240475.123986} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"51f4dde036869983509a60568ad3424b","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8410bed4-697e-47dc-a003-070428f290ae","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240475.129556} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"51f4dde036869983509a60568ad3424b","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:34.136140652Z"}]},"request_id":"0842f506-753a-40d7-b1bd-3336614ec81f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240475.147022} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"51f4dde036869983509a60568ad3424b","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"51f4dde036869983509a60568ad3424b"} device-1 | {"level":"info","message":"PATCH /devices/737d0c53-0124-4509-b3c0-e50d6a4a059f 200 75ms","method":"PATCH","requestID":"51f4dde036869983509a60568ad3424b","responseTime":75,"status":200,"url":"/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f"} gateway-1 | {"time_local":"18/Jun/2025:09:54:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/737d0c53-0124-4509-b3c0-e50d6a4a059f HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.080","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"51f4dde036869983509a60568ad3424b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3NX0.qMEevEnJOB9UTqh286dWS7Lz9xs4kboGoCD5XNo6OCc","level":"info","message":"auth send jwt","requestID":"69606e95754c94155144a904576b3953"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"69606e95754c94155144a904576b3953","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"69606e95754c94155144a904576b3953"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:35Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.688433,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:35Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"69606e95754c94155144a904576b3953","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240475,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3NX0.qMEevEnJOB9UTqh286dWS7Lz9xs4kboGoCD5XNo6OCc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"69606e95754c94155144a904576b3953","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"69606e95754c94155144a904576b3953"} gateway-1 | {"time_local":"18/Jun/2025:09:54:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/737d0c53-0124-4509-b3c0-e50d6a4a059f/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.018","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"69606e95754c94155144a904576b3953"} device-1 | {"level":"info","message":"POST /devices/737d0c53-0124-4509-b3c0-e50d6a4a059f/websocket 200 15ms","method":"POST","requestID":"69606e95754c94155144a904576b3953","responseTime":15,"status":200,"url":"/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"5ce6a8ef0eb77abb1b2d9aa030d7599c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5ce6a8ef0eb77abb1b2d9aa030d7599c","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/2b8a98b2-952e-4a99-997d-952b80a11bc4/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"5ce6a8ef0eb77abb1b2d9aa030d7599c"} device-1 | {"level":"info","message":"OPTIONS /devices/2b8a98b2-952e-4a99-997d-952b80a11bc4/websocket 200 1ms","method":"OPTIONS","requestID":"5ce6a8ef0eb77abb1b2d9aa030d7599c","responseTime":1,"status":200,"url":"/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0","level":"info","message":"auth send jwt","requestID":"f04a00e59303ccd9c7dd85e47f54188d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f04a00e59303ccd9c7dd85e47f54188d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"f04a00e59303ccd9c7dd85e47f54188d"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.218951,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f04a00e59303ccd9c7dd85e47f54188d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240476,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"f04a00e59303ccd9c7dd85e47f54188d","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"f04a00e59303ccd9c7dd85e47f54188d"} device-1 | {"level":"info","message":"POST /devices/2b8a98b2-952e-4a99-997d-952b80a11bc4/websocket 200 32ms","method":"POST","requestID":"f04a00e59303ccd9c7dd85e47f54188d","responseTime":32,"status":200,"url":"/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:54:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/2b8a98b2-952e-4a99-997d-952b80a11bc4/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.037","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f04a00e59303ccd9c7dd85e47f54188d"} device-1 | {"level":"info","message":"device 'http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f1579f22244fc2f1bafdb6bd8273659a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f1579f22244fc2f1bafdb6bd8273659a","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/2b8a98b2-952e-4a99-997d-952b80a11bc4? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f1579f22244fc2f1bafdb6bd8273659a"} device-1 | {"level":"info","message":"OPTIONS /devices/2b8a98b2-952e-4a99-997d-952b80a11bc4? 200 1ms","method":"OPTIONS","requestID":"f1579f22244fc2f1bafdb6bd8273659a","responseTime":1,"status":200,"url":"/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0","level":"info","message":"auth send jwt","requestID":"f6df2118d5ff788ef077c89a393a3094"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f6df2118d5ff788ef077c89a393a3094","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"f6df2118d5ff788ef077c89a393a3094"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.666588,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f6df2118d5ff788ef077c89a393a3094","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240476,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f6df2118d5ff788ef077c89a393a3094","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:34.036188681Z"}]},"request_id":"45a0ccc3-3f8e-4dcb-b152-15d3ab04600a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240476.6117609} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"f6df2118d5ff788ef077c89a393a3094","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0f92aaaf-6e92-4a33-9fd1-062102f8dbcb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240476.61635} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"f6df2118d5ff788ef077c89a393a3094","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:34.036188681Z"}]},"request_id":"5d5ead54-0cf1-45be-aa19-0b68ef1a73c4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240476.6259944} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"f6df2118d5ff788ef077c89a393a3094","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"f6df2118d5ff788ef077c89a393a3094"} gateway-1 | {"time_local":"18/Jun/2025:09:54:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/2b8a98b2-952e-4a99-997d-952b80a11bc4? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.029","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f6df2118d5ff788ef077c89a393a3094"} device-1 | {"level":"info","message":"PATCH /devices/2b8a98b2-952e-4a99-997d-952b80a11bc4? 200 26ms","method":"PATCH","requestID":"f6df2118d5ff788ef077c89a393a3094","responseTime":26,"status":200,"url":"/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0","level":"info","message":"auth send jwt","requestID":"a53c27fb7a4243b031ce2e34d7426fdc"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a53c27fb7a4243b031ce2e34d7426fdc","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a53c27fb7a4243b031ce2e34d7426fdc"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.585459,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a53c27fb7a4243b031ce2e34d7426fdc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240476,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"a53c27fb7a4243b031ce2e34d7426fdc","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:34.036188681Z"}]},"request_id":"845cb7ee-7709-4811-b954-55f6c46801dd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240476.6465218} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a53c27fb7a4243b031ce2e34d7426fdc","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"a53c27fb7a4243b031ce2e34d7426fdc"} device-1 | {"level":"info","message":"GET /devices/2b8a98b2-952e-4a99-997d-952b80a11bc4? 200 11ms","method":"GET","requestID":"a53c27fb7a4243b031ce2e34d7426fdc","responseTime":11,"status":200,"url":"/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2b8a98b2-952e-4a99-997d-952b80a11bc4? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a53c27fb7a4243b031ce2e34d7426fdc"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0","level":"info","message":"auth send jwt","requestID":"9a4dbc834fd3ca03f00a9001aabcd255"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9a4dbc834fd3ca03f00a9001aabcd255","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"9a4dbc834fd3ca03f00a9001aabcd255"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.715531,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9a4dbc834fd3ca03f00a9001aabcd255","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240476,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"9a4dbc834fd3ca03f00a9001aabcd255","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:34.136140652Z"}]},"request_id":"e2cc47a8-cc84-465b-8b06-fafcd1940334","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240476.6608763} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"9a4dbc834fd3ca03f00a9001aabcd255","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"9a4dbc834fd3ca03f00a9001aabcd255"} device-1 | {"level":"info","message":"GET /devices/737d0c53-0124-4509-b3c0-e50d6a4a059f? 200 11ms","method":"GET","requestID":"9a4dbc834fd3ca03f00a9001aabcd255","responseTime":11,"status":200,"url":"/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/737d0c53-0124-4509-b3c0-e50d6a4a059f? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9a4dbc834fd3ca03f00a9001aabcd255"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0","level":"info","message":"auth send jwt","requestID":"567e311c39467cd417ccc97241455f5c"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"567e311c39467cd417ccc97241455f5c","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"567e311c39467cd417ccc97241455f5c"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.727703,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"567e311c39467cd417ccc97241455f5c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240476,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"567e311c39467cd417ccc97241455f5c","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa"},"level":"info","message":"Attempting to run experiment","requestID":"567e311c39467cd417ccc97241455f5c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa"},"level":"info","message":"Attempting to book experiment","requestID":"567e311c39467cd417ccc97241455f5c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa"},"level":"info","message":"Successfully booked experiment","requestID":"567e311c39467cd417ccc97241455f5c"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3e65c600-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3e65ed10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.654112,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3e65c600-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240476,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3e65c600-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.084591,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3e65ed10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240476,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3e65ed10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:34.036188681Z"}]},"request_id":"dcd3a58e-e7d4-4aa3-a2f9-c2e906daa8a0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240476.7762406} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"3e65c600-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:34.136140652Z"}]},"request_id":"b84f2980-51bd-4b50-a068-9d87cbea8ce3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240476.8014448} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"3e65ed10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3e65ed10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/737d0c53-0124-4509-b3c0-e50d6a4a059f? 200 36ms","method":"GET","requestID":"3e65ed10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3e65c600-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/2b8a98b2-952e-4a99-997d-952b80a11bc4? 200 37ms","method":"GET","requestID":"3e65c600-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa"},"level":"info","message":"Setting up experiment","requestID":"567e311c39467cd417ccc97241455f5c"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"567e311c39467cd417ccc97241455f5c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"567e311c39467cd417ccc97241455f5c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa"},"level":"info","message":"Successfully locked booking for experiment","requestID":"567e311c39467cd417ccc97241455f5c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa"},"level":"info","message":"Successfully set up experiment","requestID":"567e311c39467cd417ccc97241455f5c"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3e72e560-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3e730c70-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa"},"level":"info","message":"Successfully running experiment","requestID":"567e311c39467cd417ccc97241455f5c"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.995878,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3e72e560-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240476,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3e72e560-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.602904,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3e730c70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240476,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"3e730c70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:34.036188681Z"}]},"request_id":"96679609-5ed0-49b3-8c15-a9dc7438ea38","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240476.8630602} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3e72e560-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:34.136140652Z"}]},"request_id":"fac58cf0-6a45-431a-a5f0-ca944bf79fc2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240476.8637407} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3e730c70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3e72e560-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa00972b3-e050-4b1c-ac0c-5688f75e72fa#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa00972b3-e050-4b1c-ac0c-5688f75e72fa","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"64f44e50-b8a2-4404-bbc9-c49d27e40b0b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240476.867885} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ab04bf1d-a409-441d-9afc-376a7aac0462","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240476.8681228} device-1 | {"level":"info","message":"GET /devices/2b8a98b2-952e-4a99-997d-952b80a11bc4? 200 14ms","method":"GET","requestID":"3e72e560-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3e730c70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/737d0c53-0124-4509-b3c0-e50d6a4a059f? 200 14ms","method":"GET","requestID":"3e730c70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"567e311c39467cd417ccc97241455f5c","responseTime":11,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3e75a480-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f1907dc1-8733-4d5b-8f2e-5561223f276e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240476.8766599} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.609017,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3e75a480-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"3e75a480-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"567e311c39467cd417ccc97241455f5c"} gateway-1 | {"time_local":"18/Jun/2025:09:54:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"782","request_time":"0.214","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"567e311c39467cd417ccc97241455f5c"} experiment-1 | {"level":"info","message":"POST /experiments? 201 209ms","method":"POST","requestID":"567e311c39467cd417ccc97241455f5c","responseTime":209,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3e75a480-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/2b8a98b2-952e-4a99-997d-952b80a11bc4/signaling 200 9ms","method":"POST","requestID":"3e75a480-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0","level":"info","message":"auth send jwt","requestID":"65a8dd8104638d1c0d5ebcb597237aad"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"65a8dd8104638d1c0d5ebcb597237aad","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3e777940-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"65a8dd8104638d1c0d5ebcb597237aad"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.606597,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"65a8dd8104638d1c0d5ebcb597237aad","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240476,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"65a8dd8104638d1c0d5ebcb597237aad","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"482851f3-5f07-4fae-9f3f-0b36906e1af0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240476.8889055} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.248749,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3e777940-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"3e777940-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:34.036188681Z"}]},"request_id":"86f3fb3e-ff3a-4e50-af2f-5e79ccea68f9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240476.893797} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3e777940-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/737d0c53-0124-4509-b3c0-e50d6a4a059f/signaling 200 10ms","method":"POST","requestID":"3e777940-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"65a8dd8104638d1c0d5ebcb597237aad","responseTime":3,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"567e311c39467cd417ccc97241455f5c"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3e794e00-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3e797510-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"65a8dd8104638d1c0d5ebcb597237aad"} gateway-1 | {"time_local":"18/Jun/2025:09:54:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2b8a98b2-952e-4a99-997d-952b80a11bc4? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"65a8dd8104638d1c0d5ebcb597237aad"} device-1 | {"level":"info","message":"GET /devices/2b8a98b2-952e-4a99-997d-952b80a11bc4? 200 14ms","method":"GET","requestID":"65a8dd8104638d1c0d5ebcb597237aad","responseTime":14,"status":200,"url":"/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4?"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Received request.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"client_addr":"127.0.0.1:48754","level":"info","msg":"Sent response.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.754435,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3e794e00-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240476,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"3e794e00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.687589,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:36Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0","level":"info","message":"auth send jwt","requestID":"7262eb0d01c88c644793f9c44312910a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7262eb0d01c88c644793f9c44312910a","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3e797510-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240476,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3e797510-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7262eb0d01c88c644793f9c44312910a"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:34.036188681Z"}]},"request_id":"d1ae5df2-d4f0-4ca7-aceb-559af2ae4cbf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240476.9058862} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3e794e00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:34.136140652Z"}]},"request_id":"901e1ed8-1f00-49e3-8f80-1bd79722b532","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240476.9071045} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3e794e00-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"3e797510-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.640292,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:36Z"} device-1 | {"level":"info","message":"GET /devices/2b8a98b2-952e-4a99-997d-952b80a11bc4? 200 14ms","method":"GET","requestID":"3e794e00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4?"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7262eb0d01c88c644793f9c44312910a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240476,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"7262eb0d01c88c644793f9c44312910a","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3e797510-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/737d0c53-0124-4509-b3c0-e50d6a4a059f? 200 17ms","method":"GET","requestID":"3e797510-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":17,"status":200,"url":"/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:34.136140652Z"}]},"request_id":"f93c8ac7-c412-426e-a387-06296872f982","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240476.9151053} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa"},"level":"info","message":"Building connection plan","requestID":"567e311c39467cd417ccc97241455f5c"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"7262eb0d01c88c644793f9c44312910a","responseTime":3,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"fffbd5ae-8d3a-4582-b6e4-ba64280f0b6a"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"e4f719f0-a353-4dc7-b171-ea82ac872a37"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/file","uuid":"6f068dbe-4654-41a3-9b17-d367b93f8239"}]},"level":"info","message":"Built pairwise service configurations","requestID":"567e311c39467cd417ccc97241455f5c"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"567e311c39467cd417ccc97241455f5c"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"3e7ca960-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7262eb0d01c88c644793f9c44312910a"} gateway-1 | {"time_local":"18/Jun/2025:09:54:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/737d0c53-0124-4509-b3c0-e50d6a4a059f? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7262eb0d01c88c644793f9c44312910a"} device-1 | {"level":"info","message":"GET /devices/737d0c53-0124-4509-b3c0-e50d6a4a059f? 200 14ms","method":"GET","requestID":"7262eb0d01c88c644793f9c44312910a","responseTime":14,"status":200,"url":"/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f?"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.703743,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3e7ca960-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240476,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3Nn0.c7hFqNMI9sun5b9zZWRIHXZAsOH4BRugdfkz2O0gPF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3e7ca960-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"2d38ecd8-dd46-4bf1-9290-117bc74b90c8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240476.928403} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cdb3b9cd-c1a2-44c7-94e2-384a1982a400","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240476.9285948} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"3e7ca960-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"3e7ca960-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"3e7ca960-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/fe23cb97-68e5-46d4-b00c-eaabf7dc8da6'","requestID":"3e7ca960-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/fe23cb97-68e5-46d4-b00c-eaabf7dc8da6'","requestID":"3e7ca960-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"3e7ca960-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 37ms","method":"POST","requestID":"3e7ca960-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"3e7ca960-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"567e311c39467cd417ccc97241455f5c"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3e89a1b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:37Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"11e7bb63-3e86-4f2c-bdba-fc2598ec80a4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240477.0079737} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.262761,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3e89a1b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"3e89a1b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3e89a1b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/2b8a98b2-952e-4a99-997d-952b80a11bc4/signaling 200 9ms","method":"POST","requestID":"3e89a1b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3e8b4f60-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:37Z"} device-1 | {"device":"2b8a98b2-952e-4a99-997d-952b80a11bc4","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"2b8a98b2-952e-4a99-997d-952b80a11bc4","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fe435bf3-3267-4659-97c9-48430a5e7bd4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240477.0433884} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.506288,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3e8b4f60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"3e8b4f60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3e8b4f60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/737d0c53-0124-4509-b3c0-e50d6a4a059f/signaling 200 35ms","method":"POST","requestID":"3e8b4f60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 6967103945586745476 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:kZ8X\r\na=ice-pwd:L4i00SX7OfP+qqAiO2kKnyqc\r\na=ice-options:trickle\r\na=fingerprint:sha-256 22:52:A0:65:99:A8:40:4B:BD:82:46:41:92:7C:B5:86:AC:A1:50:F5:F9:6A:CD:FD:67:C7:99:10:C9:EC:72:C3\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"2b8a98b2-952e-4a99-997d-952b80a11bc4","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"device":"737d0c53-0124-4509-b3c0-e50d6a4a059f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"fe23cb97-68e5-46d4-b00c-eaabf7dc8da6","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"737d0c53-0124-4509-b3c0-e50d6a4a059f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"737d0c53-0124-4509-b3c0-e50d6a4a059f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"737d0c53-0124-4509-b3c0-e50d6a4a059f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"737d0c53-0124-4509-b3c0-e50d6a4a059f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fe23cb97-68e5-46d4-b00c-eaabf7dc8da6' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fe23cb97-68e5-46d4-b00c-eaabf7dc8da6","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"7c6486913e4b142fc825878e85c093a7","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7c6486913e4b142fc825878e85c093a7","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/fe23cb97-68e5-46d4-b00c-eaabf7dc8da6"}}},"level":"info","message":"received a callback","requestID":"7c6486913e4b142fc825878e85c093a7"} device-1 | {"content":{"candidate":"candidate:437224131 1 udp 2113937151 b17fdf67-c3fd-4f7d-ab93-2ca852a4c485.local 41351 typ host generation 0 ufrag kZ8X network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"2b8a98b2-952e-4a99-997d-952b80a11bc4","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:944835662 1 udp 1677729535 141.24.211.56 41351 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag kZ8X network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"2b8a98b2-952e-4a99-997d-952b80a11bc4","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"2b8a98b2-952e-4a99-997d-952b80a11bc4","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"2b8a98b2-952e-4a99-997d-952b80a11bc4","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"7c6486913e4b142fc825878e85c093a7","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"7c6486913e4b142fc825878e85c093a7"} device-1 | {"device":"737d0c53-0124-4509-b3c0-e50d6a4a059f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"2b8a98b2-952e-4a99-997d-952b80a11bc4","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"737d0c53-0124-4509-b3c0-e50d6a4a059f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4'"} device-1 | {"data":{"peerconnection":"fe23cb97-68e5-46d4-b00c-eaabf7dc8da6","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"fe23cb97-68e5-46d4-b00c-eaabf7dc8da6","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fe23cb97-68e5-46d4-b00c-eaabf7dc8da6' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fe23cb97-68e5-46d4-b00c-eaabf7dc8da6","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ee4cd8476f148b1ec09a927ebac41e5b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ee4cd8476f148b1ec09a927ebac41e5b","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/fe23cb97-68e5-46d4-b00c-eaabf7dc8da6"}}},"level":"info","message":"received a callback","requestID":"ee4cd8476f148b1ec09a927ebac41e5b"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"3fc221b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:39Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffe23cb97-68e5-46d4-b00c-eaabf7dc8da6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4fba9e01-2d5c-420c-a814-9c2c0197811f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240479.0565028} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.719311,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fe23cb97-68e5-46d4-b00c-eaabf7dc8da6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3fc221b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/fe23cb97-68e5-46d4-b00c-eaabf7dc8da6","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"3fc221b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"3fc221b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/fe23cb97-68e5-46d4-b00c-eaabf7dc8da6 200 10ms","method":"GET","requestID":"3fc221b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/peerconnections/fe23cb97-68e5-46d4-b00c-eaabf7dc8da6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 36ms","method":"POST","requestID":"ee4cd8476f148b1ec09a927ebac41e5b","responseTime":36,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.063","http_referrer":"","http_user_agent":"node-fetch","requestID":"ee4cd8476f148b1ec09a927ebac41e5b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3fca5f10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:39Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6f07293a-7594-4bbb-8d7a-f8e6e4bd5a47","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240479.110613} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.699809,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3fca5f10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"3fca5f10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3fca5f10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/737d0c53-0124-4509-b3c0-e50d6a4a059f/signaling 200 11ms","method":"POST","requestID":"3fca5f10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3fcc81f0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:39Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b37650a4-c928-4738-bcd2-a2f1d6a660cb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240479.1233566} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.617798,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3fcc81f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"3fcc81f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3fcc81f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/2b8a98b2-952e-4a99-997d-952b80a11bc4/signaling 200 9ms","method":"POST","requestID":"3fcc81f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3OX0.yPmDFAu6BeMM-ugIx-w24MaCRl-ncNMQKj50bB0pbhc","level":"info","message":"auth send jwt","requestID":"3f82ffd5145eeba50f85e716bf8f0d7e"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"3f82ffd5145eeba50f85e716bf8f0d7e","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa","requestID":"3f82ffd5145eeba50f85e716bf8f0d7e"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:39Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.0883,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3f82ffd5145eeba50f85e716bf8f0d7e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240479,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3OX0.yPmDFAu6BeMM-ugIx-w24MaCRl-ncNMQKj50bB0pbhc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3f82ffd5145eeba50f85e716bf8f0d7e","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa","requestID":"3f82ffd5145eeba50f85e716bf8f0d7e"} gateway-1 | {"time_local":"18/Jun/2025:09:54:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa HTTP/1.1","status": "200","body_bytes_sent":"855","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3f82ffd5145eeba50f85e716bf8f0d7e"} experiment-1 | {"level":"info","message":"GET /experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa 200 13ms","method":"GET","requestID":"3f82ffd5145eeba50f85e716bf8f0d7e","responseTime":13,"status":200,"url":"/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3OX0.yPmDFAu6BeMM-ugIx-w24MaCRl-ncNMQKj50bB0pbhc","level":"info","message":"auth send jwt","requestID":"0e108c4e8b3a7ded282c7d6103185b94"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0e108c4e8b3a7ded282c7d6103185b94","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa","requestID":"0e108c4e8b3a7ded282c7d6103185b94"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:39Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.772294,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:39Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0e108c4e8b3a7ded282c7d6103185b94","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240479,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3OX0.yPmDFAu6BeMM-ugIx-w24MaCRl-ncNMQKj50bB0pbhc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0e108c4e8b3a7ded282c7d6103185b94","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa"},"level":"info","message":"Attempting to finish experiment","requestID":"0e108c4e8b3a7ded282c7d6103185b94"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"3ffe6760-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:39Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.008457,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:39Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fe23cb97-68e5-46d4-b00c-eaabf7dc8da6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3ffe6760-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/fe23cb97-68e5-46d4-b00c-eaabf7dc8da6","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240479,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3OX0.yPmDFAu6BeMM-ugIx-w24MaCRl-ncNMQKj50bB0pbhc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3ffe6760-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/fe23cb97-68e5-46d4-b00c-eaabf7dc8da6","device":"2b8a98b2-952e-4a99-997d-952b80a11bc4","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"737d0c53-0124-4509-b3c0-e50d6a4a059f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"737d0c53-0124-4509-b3c0-e50d6a4a059f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"737d0c53-0124-4509-b3c0-e50d6a4a059f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fe23cb97-68e5-46d4-b00c-eaabf7dc8da6' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/fe23cb97-68e5-46d4-b00c-eaabf7dc8da6' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fe23cb97-68e5-46d4-b00c-eaabf7dc8da6","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffe23cb97-68e5-46d4-b00c-eaabf7dc8da6': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffe23cb97-68e5-46d4-b00c-eaabf7dc8da6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"86b5aec7-3800-4390-b700-e6a29290bb4d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240479.465446} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fac995e5-00ad-40da-9e0a-7eeb21df8b81","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240479.4657092} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"3ffe6760-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fe23cb97-68e5-46d4-b00c-eaabf7dc8da6"}}},"level":"info","message":"received a callback","requestID":"8b5c3bc66d168d3752408ef0d1254ab0"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8b5c3bc66d168d3752408ef0d1254ab0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8b5c3bc66d168d3752408ef0d1254ab0","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"5860a9a48cb4e346772b977dfb6c8c53","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5860a9a48cb4e346772b977dfb6c8c53","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fe23cb97-68e5-46d4-b00c-eaabf7dc8da6"}}},"level":"info","message":"received a callback","requestID":"5860a9a48cb4e346772b977dfb6c8c53"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"3ffe6760-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/fe23cb97-68e5-46d4-b00c-eaabf7dc8da6 204 37ms","method":"DELETE","requestID":"3ffe6760-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":204,"url":"/peerconnections/fe23cb97-68e5-46d4-b00c-eaabf7dc8da6"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa"},"level":"info","message":"Successfully finished experiment","requestID":"0e108c4e8b3a7ded282c7d6103185b94"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"40074100-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:39Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F737d0c53-0124-4509-b3c0-e50d6a4a059f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0871ef11-1931-4ac0-b743-3d42370991b9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240479.5088382} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.383376,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"40074100-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"40074100-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"40074100-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/737d0c53-0124-4509-b3c0-e50d6a4a059f/signaling 200 9ms","method":"POST","requestID":"40074100-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4008eeb0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:39Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b8a98b2-952e-4a99-997d-952b80a11bc4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3afdd51a-a828-4eb0-a93f-ea7cfa3c7b83","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240479.519253} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.409554,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4008eeb0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4008eeb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4008eeb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/2b8a98b2-952e-4a99-997d-952b80a11bc4/signaling 200 8ms","method":"POST","requestID":"4008eeb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa00972b3-e050-4b1c-ac0c-5688f75e72fa': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa00972b3-e050-4b1c-ac0c-5688f75e72fa","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"73080a00-6011-4597-bf34-83ca88a0c52f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240479.5415707} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ab6045b2-47ae-49be-af47-156f5ed396ed","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240479.5418088} authorization-1 | {"level":"info","message":"POST /relations/update 200 41ms","method":"POST","requestID":"0e108c4e8b3a7ded282c7d6103185b94","responseTime":41,"status":200,"url":"/relations/update"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa","requestID":"0e108c4e8b3a7ded282c7d6103185b94"} gateway-1 | {"time_local":"18/Jun/2025:09:54:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.211","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0e108c4e8b3a7ded282c7d6103185b94"} experiment-1 | {"level":"info","message":"DELETE /experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa 204 209ms","method":"DELETE","requestID":"0e108c4e8b3a7ded282c7d6103185b94","responseTime":209,"status":204,"url":"/experiments/a00972b3-e050-4b1c-ac0c-5688f75e72fa"} gateway-1 | {"time_local":"18/Jun/2025:09:54:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2899","request_time":"4.453","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"2fe2b00640a912b93b377dd85bdda973"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 178ms","method":"POST","requestID":"8b5c3bc66d168d3752408ef0d1254ab0","responseTime":178,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.181","http_referrer":"","http_user_agent":"node-fetch","requestID":"8b5c3bc66d168d3752408ef0d1254ab0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 178ms","method":"POST","requestID":"5860a9a48cb4e346772b977dfb6c8c53","responseTime":178,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3OX0.yPmDFAu6BeMM-ugIx-w24MaCRl-ncNMQKj50bB0pbhc","level":"info","message":"auth send jwt","requestID":"bfe6f1fbcc85eb1b5e335120029acfe7"} gateway-1 | {"time_local":"18/Jun/2025:09:54:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.181","http_referrer":"","http_user_agent":"node-fetch","requestID":"5860a9a48cb4e346772b977dfb6c8c53"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bfe6f1fbcc85eb1b5e335120029acfe7","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"bfe6f1fbcc85eb1b5e335120029acfe7"} gateway-1 | {"time_local":"18/Jun/2025:09:54:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2770","request_time":"3.083","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8ba5ccf173dd0320cef011591a81359c"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:39Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/737d0c53-0124-4509-b3c0-e50d6a4a059f' closed"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.966369,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"bfe6f1fbcc85eb1b5e335120029acfe7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240479,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3OX0.yPmDFAu6BeMM-ugIx-w24MaCRl-ncNMQKj50bB0pbhc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"bfe6f1fbcc85eb1b5e335120029acfe7","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/2b8a98b2-952e-4a99-997d-952b80a11bc4' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"bcceb1f8-9a6e-4804-ba44-0713c3493fd1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240479.6900778} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"bfe6f1fbcc85eb1b5e335120029acfe7","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"700824bc-b605-4acf-b6fb-fd2f8463b84d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240479.694782} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"bfe6f1fbcc85eb1b5e335120029acfe7","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"92f79589-c7ab-4c97-8547-47ced6fef255","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240479.7304351} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7b9dd259-4301-4637-b6e6-c27e6632c5fb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240479.7305095} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"bfe6f1fbcc85eb1b5e335120029acfe7","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:39.730409465Z"}]},"request_id":"eaa16dd7-adb0-42f0-91a6-a821ae762de4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240479.7356744} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"bfe6f1fbcc85eb1b5e335120029acfe7","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"bfe6f1fbcc85eb1b5e335120029acfe7"} device-1 | {"level":"info","message":"POST /devices? 201 89ms","method":"POST","requestID":"bfe6f1fbcc85eb1b5e335120029acfe7","responseTime":89,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.094","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bfe6f1fbcc85eb1b5e335120029acfe7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3OX0.yPmDFAu6BeMM-ugIx-w24MaCRl-ncNMQKj50bB0pbhc","level":"info","message":"auth send jwt","requestID":"11c30e19afb6034941bee96468a57166"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"11c30e19afb6034941bee96468a57166","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"11c30e19afb6034941bee96468a57166"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:39Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.748239,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"11c30e19afb6034941bee96468a57166","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240479,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ3OX0.yPmDFAu6BeMM-ugIx-w24MaCRl-ncNMQKj50bB0pbhc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"11c30e19afb6034941bee96468a57166","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"8c7d2edf-a25e-44b9-996d-bc4f33b80181","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240479.7833354} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"11c30e19afb6034941bee96468a57166","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1653c14c-e7ca-4e8f-a9ba-9d34fb478339","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240479.787935} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"11c30e19afb6034941bee96468a57166","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"4e05aae4-a5ee-4f21-9e28-10df5d8164df","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240479.7965162} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bc3bf164-e6d2-4faa-a152-181b7ab2ceeb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240479.7966444} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"11c30e19afb6034941bee96468a57166","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:39.796491870Z"}]},"request_id":"46d20910-1e5c-446c-b165-c3aa9418cb27","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240479.8249347} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"11c30e19afb6034941bee96468a57166","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"11c30e19afb6034941bee96468a57166"} gateway-1 | {"time_local":"18/Jun/2025:09:54:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.088","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"11c30e19afb6034941bee96468a57166"} device-1 | {"level":"info","message":"POST /devices? 201 84ms","method":"POST","requestID":"11c30e19afb6034941bee96468a57166","responseTime":84,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4MH0.7bkKq8RPkF-cQ7I9-zHJ_RO0ZBKXOistB_dZJnNHEYA","level":"info","message":"auth send jwt","requestID":"f544965727e5023ff1033bc0cd480ae5"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f544965727e5023ff1033bc0cd480ae5","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"f544965727e5023ff1033bc0cd480ae5"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:40Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.371523,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:40Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f544965727e5023ff1033bc0cd480ae5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240480,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4MH0.7bkKq8RPkF-cQ7I9-zHJ_RO0ZBKXOistB_dZJnNHEYA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f544965727e5023ff1033bc0cd480ae5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:39.730409465Z"}]},"request_id":"2127756b-d67c-4f91-8823-d48a55167e22","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240480.786457} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"f544965727e5023ff1033bc0cd480ae5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2b0c6537-bfa9-4ea4-946c-cdbff9d9fc77","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240480.7910497} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"f544965727e5023ff1033bc0cd480ae5","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:39.730409465Z"}]},"request_id":"135c72ad-2a0a-463a-bd1a-27c5e3622d94","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240480.8074176} gateway-1 | {"time_local":"18/Jun/2025:09:54:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d4a8cd68-5673-4103-8296-a327c6d23cbd HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.062","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"f544965727e5023ff1033bc0cd480ae5"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"f544965727e5023ff1033bc0cd480ae5"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"f544965727e5023ff1033bc0cd480ae5","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"PATCH /devices/d4a8cd68-5673-4103-8296-a327c6d23cbd 200 59ms","method":"PATCH","requestID":"f544965727e5023ff1033bc0cd480ae5","responseTime":59,"status":200,"url":"/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4MH0.7bkKq8RPkF-cQ7I9-zHJ_RO0ZBKXOistB_dZJnNHEYA","level":"info","message":"auth send jwt","requestID":"334428dedbe0d8418ac2da1e173cf4fe"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"334428dedbe0d8418ac2da1e173cf4fe","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"334428dedbe0d8418ac2da1e173cf4fe"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:40Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.708472,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:40Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"334428dedbe0d8418ac2da1e173cf4fe","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240480,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4MH0.7bkKq8RPkF-cQ7I9-zHJ_RO0ZBKXOistB_dZJnNHEYA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"334428dedbe0d8418ac2da1e173cf4fe","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"334428dedbe0d8418ac2da1e173cf4fe"} device-1 | {"level":"info","message":"POST /devices/d4a8cd68-5673-4103-8296-a327c6d23cbd/websocket 200 15ms","method":"POST","requestID":"334428dedbe0d8418ac2da1e173cf4fe","responseTime":15,"status":200,"url":"/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:54:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d4a8cd68-5673-4103-8296-a327c6d23cbd/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.039","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"334428dedbe0d8418ac2da1e173cf4fe"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e508c209f8b094574f32fba5a1c63b3a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e508c209f8b094574f32fba5a1c63b3a","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/82c1813d-08df-42e7-9530-af1da6c3d889/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e508c209f8b094574f32fba5a1c63b3a"} device-1 | {"level":"info","message":"OPTIONS /devices/82c1813d-08df-42e7-9530-af1da6c3d889/websocket 200 1ms","method":"OPTIONS","requestID":"e508c209f8b094574f32fba5a1c63b3a","responseTime":1,"status":200,"url":"/devices/82c1813d-08df-42e7-9530-af1da6c3d889/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU","level":"info","message":"auth send jwt","requestID":"5549c5961623b4489a8adf2369c3e1b3"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"5549c5961623b4489a8adf2369c3e1b3","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"5549c5961623b4489a8adf2369c3e1b3"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.366556,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5549c5961623b4489a8adf2369c3e1b3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240482,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"5549c5961623b4489a8adf2369c3e1b3","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"5549c5961623b4489a8adf2369c3e1b3"} gateway-1 | {"time_local":"18/Jun/2025:09:54:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/82c1813d-08df-42e7-9530-af1da6c3d889/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.032","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"5549c5961623b4489a8adf2369c3e1b3"} device-1 | {"level":"info","message":"POST /devices/82c1813d-08df-42e7-9530-af1da6c3d889/websocket 200 25ms","method":"POST","requestID":"5549c5961623b4489a8adf2369c3e1b3","responseTime":25,"status":200,"url":"/devices/82c1813d-08df-42e7-9530-af1da6c3d889/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"444c9c6bb95e825c9ce7c1ae6ba29497","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"444c9c6bb95e825c9ce7c1ae6ba29497","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/82c1813d-08df-42e7-9530-af1da6c3d889? 200 0ms","method":"OPTIONS","requestID":"444c9c6bb95e825c9ce7c1ae6ba29497","responseTime":0,"status":200,"url":"/devices/82c1813d-08df-42e7-9530-af1da6c3d889?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/82c1813d-08df-42e7-9530-af1da6c3d889? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"444c9c6bb95e825c9ce7c1ae6ba29497"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU","level":"info","message":"auth send jwt","requestID":"2864369337bf1a4596472ea6eaf40449"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2864369337bf1a4596472ea6eaf40449","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"2864369337bf1a4596472ea6eaf40449"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.706357,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2864369337bf1a4596472ea6eaf40449","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240482,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2864369337bf1a4596472ea6eaf40449","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:39.796491870Z"}]},"request_id":"996b1c03-9b2f-4a81-906f-82bda45d1657","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.2704768} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2864369337bf1a4596472ea6eaf40449","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5243bb79-fb2e-4e81-8b4e-cbea15ed936f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.274864} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"2864369337bf1a4596472ea6eaf40449","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:39.796491870Z"}]},"request_id":"09ff5bfd-2add-420c-a215-996df9efa543","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.2842627} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2864369337bf1a4596472ea6eaf40449","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"2864369337bf1a4596472ea6eaf40449"} gateway-1 | {"time_local":"18/Jun/2025:09:54:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/82c1813d-08df-42e7-9530-af1da6c3d889? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.030","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2864369337bf1a4596472ea6eaf40449"} device-1 | {"level":"info","message":"PATCH /devices/82c1813d-08df-42e7-9530-af1da6c3d889? 200 27ms","method":"PATCH","requestID":"2864369337bf1a4596472ea6eaf40449","responseTime":27,"status":200,"url":"/devices/82c1813d-08df-42e7-9530-af1da6c3d889?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU","level":"info","message":"auth send jwt","requestID":"ccd5887094b1f52f24b2bc7edc74802a"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ccd5887094b1f52f24b2bc7edc74802a","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ccd5887094b1f52f24b2bc7edc74802a"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.687664,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ccd5887094b1f52f24b2bc7edc74802a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240482,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ccd5887094b1f52f24b2bc7edc74802a","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:39.730409465Z"}]},"request_id":"c16abe6b-75c4-4b5d-bc23-1e3700bde243","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.3040915} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ccd5887094b1f52f24b2bc7edc74802a","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ccd5887094b1f52f24b2bc7edc74802a"} device-1 | {"level":"info","message":"GET /devices/d4a8cd68-5673-4103-8296-a327c6d23cbd? 200 11ms","method":"GET","requestID":"ccd5887094b1f52f24b2bc7edc74802a","responseTime":11,"status":200,"url":"/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d4a8cd68-5673-4103-8296-a327c6d23cbd? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ccd5887094b1f52f24b2bc7edc74802a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU","level":"info","message":"auth send jwt","requestID":"c0e2ce7b013be78d38d127f88f350290"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c0e2ce7b013be78d38d127f88f350290","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"c0e2ce7b013be78d38d127f88f350290"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.818331,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c0e2ce7b013be78d38d127f88f350290","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240482,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"c0e2ce7b013be78d38d127f88f350290","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:39.796491870Z"}]},"request_id":"73e4fb6b-c719-446e-9895-4aa93d28e4c9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.3218389} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c0e2ce7b013be78d38d127f88f350290","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"c0e2ce7b013be78d38d127f88f350290"} gateway-1 | {"time_local":"18/Jun/2025:09:54:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/82c1813d-08df-42e7-9530-af1da6c3d889? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c0e2ce7b013be78d38d127f88f350290"} device-1 | {"level":"info","message":"GET /devices/82c1813d-08df-42e7-9530-af1da6c3d889? 200 11ms","method":"GET","requestID":"c0e2ce7b013be78d38d127f88f350290","responseTime":11,"status":200,"url":"/devices/82c1813d-08df-42e7-9530-af1da6c3d889?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU","level":"info","message":"auth send jwt","requestID":"6031e7e9859831372c233d3ae5a50049"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6031e7e9859831372c233d3ae5a50049","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"6031e7e9859831372c233d3ae5a50049"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.653688,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6031e7e9859831372c233d3ae5a50049","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240482,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6031e7e9859831372c233d3ae5a50049","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0"},"level":"info","message":"Attempting to run experiment","requestID":"6031e7e9859831372c233d3ae5a50049"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0"},"level":"info","message":"Attempting to book experiment","requestID":"6031e7e9859831372c233d3ae5a50049"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0"},"level":"info","message":"Successfully booked experiment","requestID":"6031e7e9859831372c233d3ae5a50049"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"41bfed80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"41c03ba0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.883978,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"41bfed80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240482,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"41bfed80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Received request.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:39.730409465Z"}]},"request_id":"c8859ef0-dea1-4d39-8c70-8711e254cb7e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.4221299} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"41bfed80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Sent response.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.79805,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"41c03ba0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240482,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"41c03ba0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"41bfed80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/d4a8cd68-5673-4103-8296-a327c6d23cbd? 200 34ms","method":"GET","requestID":"41bfed80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:39.796491870Z"}]},"request_id":"b57b2969-96d2-4b7d-98a3-b384fe2372aa","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.4266896} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"41c03ba0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"41c03ba0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/82c1813d-08df-42e7-9530-af1da6c3d889? 200 36ms","method":"GET","requestID":"41c03ba0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/82c1813d-08df-42e7-9530-af1da6c3d889?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0"},"level":"info","message":"Setting up experiment","requestID":"6031e7e9859831372c233d3ae5a50049"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"6031e7e9859831372c233d3ae5a50049"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"6031e7e9859831372c233d3ae5a50049"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0"},"level":"info","message":"Successfully locked booking for experiment","requestID":"6031e7e9859831372c233d3ae5a50049"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0"},"level":"info","message":"Successfully set up experiment","requestID":"6031e7e9859831372c233d3ae5a50049"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"41cd33f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"41cd5b00-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0"},"level":"info","message":"Successfully running experiment","requestID":"6031e7e9859831372c233d3ae5a50049"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Received request.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Sent response.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.682311,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"41cd33f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240482,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"41cd33f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.583663,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"41cd5b00-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240482,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"41cd5b00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:39.730409465Z"}]},"request_id":"654f5aa5-e296-4c4f-8173-5b3c0817d3cf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.4875622} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"41cd33f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:39.796491870Z"}]},"request_id":"b13d2fdf-afdb-48e4-b857-e05bb21dc085","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.4884968} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"41cd5b00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":26,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F175b1ec4-fdc5-4ebf-80a7-72e27c5192f0#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F175b1ec4-fdc5-4ebf-80a7-72e27c5192f0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"e89bbee5-f9bb-46b2-9954-5ed63ef0109c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.5157392} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"41cd33f0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"da3e5c06-d08d-4f4b-9a54-07f9a429833b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.5161214} device-1 | {"level":"info","message":"GET /devices/d4a8cd68-5673-4103-8296-a327c6d23cbd? 200 38ms","method":"GET","requestID":"41cd33f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":38,"status":200,"url":"/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"41cd5b00-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/update 200 34ms","method":"POST","requestID":"6031e7e9859831372c233d3ae5a50049","responseTime":34,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"GET /devices/82c1813d-08df-42e7-9530-af1da6c3d889? 200 37ms","method":"GET","requestID":"41cd5b00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/82c1813d-08df-42e7-9530-af1da6c3d889?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"41d3c3a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:42Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"6031e7e9859831372c233d3ae5a50049"} gateway-1 | {"time_local":"18/Jun/2025:09:54:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"782","request_time":"0.201","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6031e7e9859831372c233d3ae5a50049"} experiment-1 | {"level":"info","message":"POST /experiments? 201 197ms","method":"POST","requestID":"6031e7e9859831372c233d3ae5a50049","responseTime":197,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0bc291b7-e407-4f64-aad9-fe6a5db46e9e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.5277224} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.2484,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"41d3c3a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU","level":"info","message":"auth send jwt","requestID":"0619740be49e11f407a1eff0ca602822"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"41d3c3a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0619740be49e11f407a1eff0ca602822","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0619740be49e11f407a1eff0ca602822"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"41d3c3a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d4a8cd68-5673-4103-8296-a327c6d23cbd/signaling 200 12ms","method":"POST","requestID":"41d3c3a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd/signaling"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.665346,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0619740be49e11f407a1eff0ca602822","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240482,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0619740be49e11f407a1eff0ca602822","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"41d9de20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:39.730409465Z"}]},"request_id":"d88b9348-6c13-45f1-aa2d-eb374e2c02ff","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.563834} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"0619740be49e11f407a1eff0ca602822","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"eecd44b2-5928-42e9-a027-a7e69f116d5a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.5661929} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.909553,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:42Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0619740be49e11f407a1eff0ca602822"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"41d9de20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} gateway-1 | {"time_local":"18/Jun/2025:09:54:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d4a8cd68-5673-4103-8296-a327c6d23cbd? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0619740be49e11f407a1eff0ca602822"} device-1 | {"level":"info","message":"GET /devices/d4a8cd68-5673-4103-8296-a327c6d23cbd? 200 37ms","method":"GET","requestID":"0619740be49e11f407a1eff0ca602822","responseTime":37,"status":200,"url":"/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd?"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"41d9de20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"41d9de20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/82c1813d-08df-42e7-9530-af1da6c3d889/signaling 200 9ms","method":"POST","requestID":"41d9de20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/82c1813d-08df-42e7-9530-af1da6c3d889/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"6031e7e9859831372c233d3ae5a50049"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU","level":"info","message":"auth send jwt","requestID":"63b52882a3bcfafa04f043a4fbe4bce9"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"63b52882a3bcfafa04f043a4fbe4bce9","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"63b52882a3bcfafa04f043a4fbe4bce9"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"41dbd9f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"41dc0100-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Received request.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55742","level":"info","msg":"Sent response.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.96567,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Received request.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Sent response.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.539877,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"63b52882a3bcfafa04f043a4fbe4bce9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240482,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"63b52882a3bcfafa04f043a4fbe4bce9","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"41dbd9f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240482,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"41dbd9f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.801805,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"41dc0100-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240482,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"41dc0100-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:39.730409465Z"}]},"request_id":"c62c0ff2-912e-4d7c-a84e-2053f102bd60","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.5841227} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"41dbd9f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:39.796491870Z"}]},"request_id":"5b15e25a-f270-47fd-9273-c19d74309ebf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.6124027} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"41dbd9f0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"41dc0100-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"GET /devices/d4a8cd68-5673-4103-8296-a327c6d23cbd? 200 38ms","method":"GET","requestID":"41dbd9f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":38,"status":200,"url":"/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:39.796491870Z"}]},"request_id":"dc4a4ec0-a46b-43a2-84b8-173f1316471b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.61295} authorization-1 | {"level":"info","message":"POST /relations/query 200 31ms","method":"POST","requestID":"63b52882a3bcfafa04f043a4fbe4bce9","responseTime":31,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"41dc0100-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/82c1813d-08df-42e7-9530-af1da6c3d889? 200 43ms","method":"GET","requestID":"41dc0100-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":43,"status":200,"url":"/devices/82c1813d-08df-42e7-9530-af1da6c3d889?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"63b52882a3bcfafa04f043a4fbe4bce9"} gateway-1 | {"time_local":"18/Jun/2025:09:54:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/82c1813d-08df-42e7-9530-af1da6c3d889? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"63b52882a3bcfafa04f043a4fbe4bce9"} device-1 | {"level":"info","message":"GET /devices/82c1813d-08df-42e7-9530-af1da6c3d889? 200 46ms","method":"GET","requestID":"63b52882a3bcfafa04f043a4fbe4bce9","responseTime":46,"status":200,"url":"/devices/82c1813d-08df-42e7-9530-af1da6c3d889?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0"},"level":"info","message":"Building connection plan","requestID":"6031e7e9859831372c233d3ae5a50049"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"85cbe75f-21f2-4c72-b37f-b020b2800c09"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"bd3e9a7b-5e7e-4773-b2b7-176a54e70eda"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/file","uuid":"ad05dcdf-b525-4d6a-b856-01981592d2d8"}]},"level":"info","message":"Built pairwise service configurations","requestID":"6031e7e9859831372c233d3ae5a50049"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"6031e7e9859831372c233d3ae5a50049"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"41e305e0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.678356,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"41e305e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240482,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Mn0.xRM8Xb_-nUReDtodgdI-7AVdSD7Qu4VGRxbWJD-vAvU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"41e305e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"6f099237-80f0-4a03-a02c-c037681c2675","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.6573844} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"898ec332-6350-4948-a9ca-f131075681c8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.6576552} authorization-1 | {"level":"info","message":"POST /relations/update 200 29ms","method":"POST","requestID":"41e305e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"41e305e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"41e305e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2'","requestID":"41e305e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2'","requestID":"41e305e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"41e305e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 56ms","method":"POST","requestID":"41e305e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":56,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"41e305e0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"6031e7e9859831372c233d3ae5a50049"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"41f75130-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:42Z"} device-1 | {"device":"82c1813d-08df-42e7-9530-af1da6c3d889","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"82c1813d-08df-42e7-9530-af1da6c3d889","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b0a51c7c-0f29-4b41-a570-f75997bf5724","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.7602022} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.838417,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"41f75130-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"41f75130-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"content":{"sdp":"v=0\r\no=- 4755317377355980068 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:0wd4\r\na=ice-pwd:6JmIx5arNxZn+gaMi0NKxpWJ\r\na=ice-options:trickle\r\na=fingerprint:sha-256 49:D1:4B:35:59:F9:EC:08:EB:7B:68:FF:8B:89:E1:2C:DD:D1:D7:39:B7:AC:F8:BD:06:AF:5B:7F:3B:89:97:A3\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"82c1813d-08df-42e7-9530-af1da6c3d889","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"41f75130-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d4a8cd68-5673-4103-8296-a327c6d23cbd/signaling 200 12ms","method":"POST","requestID":"41f75130-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"41f97410-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f6e5a5e4-d56b-4af3-b74d-413d85d28396","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240482.7733827} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.189534,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"41f97410-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"41f97410-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"41f97410-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/82c1813d-08df-42e7-9530-af1da6c3d889/signaling 200 32ms","method":"POST","requestID":"41f97410-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/devices/82c1813d-08df-42e7-9530-af1da6c3d889/signaling"} device-1 | {"device":"d4a8cd68-5673-4103-8296-a327c6d23cbd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"d4a8cd68-5673-4103-8296-a327c6d23cbd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"d4a8cd68-5673-4103-8296-a327c6d23cbd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"d4a8cd68-5673-4103-8296-a327c6d23cbd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"d4a8cd68-5673-4103-8296-a327c6d23cbd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"13c2b85762cf8af3dc36962341846250","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"13c2b85762cf8af3dc36962341846250","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2"}}},"level":"info","message":"received a callback","requestID":"13c2b85762cf8af3dc36962341846250"} device-1 | {"content":{"candidate":"candidate:3257497612 1 udp 2113937151 47f3adbd-2233-48cc-88eb-6a21a84c8b0b.local 37620 typ host generation 0 ufrag 0wd4 network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"82c1813d-08df-42e7-9530-af1da6c3d889","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:1174671987 1 udp 1677729535 141.24.211.56 37620 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag 0wd4 network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"82c1813d-08df-42e7-9530-af1da6c3d889","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"82c1813d-08df-42e7-9530-af1da6c3d889","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"82c1813d-08df-42e7-9530-af1da6c3d889","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"13c2b85762cf8af3dc36962341846250","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch","requestID":"13c2b85762cf8af3dc36962341846250"} device-1 | {"device":"d4a8cd68-5673-4103-8296-a327c6d23cbd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"82c1813d-08df-42e7-9530-af1da6c3d889","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"d4a8cd68-5673-4103-8296-a327c6d23cbd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889'"} device-1 | {"data":{"peerconnection":"ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0088d1726ba95178dd0974ee36dd5bd0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0088d1726ba95178dd0974ee36dd5bd0","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2"}}},"level":"info","message":"received a callback","requestID":"0088d1726ba95178dd0974ee36dd5bd0"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"4331f410-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:44Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fccf9cdba-4065-4294-a9cd-6f0bf5fad5e2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ceb7ace4-12fa-49e8-89b8-0204097322a6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240484.8222103} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.889749,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4331f410-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"4331f410-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"4331f410-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2 200 10ms","method":"GET","requestID":"4331f410-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/peerconnections/ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 81ms","method":"POST","requestID":"0088d1726ba95178dd0974ee36dd5bd0","responseTime":81,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.085","http_referrer":"","http_user_agent":"node-fetch","requestID":"0088d1726ba95178dd0974ee36dd5bd0"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"433a0a60-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:44Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4b19bd83-cefc-4fae-b3c2-95ea07945ae2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240484.8755689} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.16669,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:44Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"433a0a60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"433a0a60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"433a0a60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d4a8cd68-5673-4103-8296-a327c6d23cbd/signaling 200 12ms","method":"POST","requestID":"433a0a60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"433c2d40-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:44Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1ed1d559-3627-4320-854b-47c3d4a537de","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240484.9177473} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":30.875271,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:44Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"433c2d40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 34ms","method":"POST","requestID":"433c2d40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"433c2d40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/82c1813d-08df-42e7-9530-af1da6c3d889/signaling 200 38ms","method":"POST","requestID":"433c2d40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":38,"status":200,"url":"/devices/82c1813d-08df-42e7-9530-af1da6c3d889/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4NX0.PqOlXTusguY5TdWXdt9j1XZftDfLguTI52TFl-F64Vk","level":"info","message":"auth send jwt","requestID":"61416e67795bd70c98b02c7b4bf52511"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"61416e67795bd70c98b02c7b4bf52511","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0","requestID":"61416e67795bd70c98b02c7b4bf52511"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:45Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.942381,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"61416e67795bd70c98b02c7b4bf52511","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240485,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4NX0.PqOlXTusguY5TdWXdt9j1XZftDfLguTI52TFl-F64Vk"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"61416e67795bd70c98b02c7b4bf52511","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0","requestID":"61416e67795bd70c98b02c7b4bf52511"} experiment-1 | {"level":"info","message":"GET /experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0 200 11ms","method":"GET","requestID":"61416e67795bd70c98b02c7b4bf52511","responseTime":11,"status":200,"url":"/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0"} gateway-1 | {"time_local":"18/Jun/2025:09:54:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0 HTTP/1.1","status": "200","body_bytes_sent":"855","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"61416e67795bd70c98b02c7b4bf52511"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4NX0.PqOlXTusguY5TdWXdt9j1XZftDfLguTI52TFl-F64Vk","level":"info","message":"auth send jwt","requestID":"cf3fbe8aadae8680f76d45a08d63be07"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cf3fbe8aadae8680f76d45a08d63be07","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0","requestID":"cf3fbe8aadae8680f76d45a08d63be07"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:45Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.853101,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:45Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"cf3fbe8aadae8680f76d45a08d63be07","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240485,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4NX0.PqOlXTusguY5TdWXdt9j1XZftDfLguTI52TFl-F64Vk"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"cf3fbe8aadae8680f76d45a08d63be07","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0"},"level":"info","message":"Attempting to finish experiment","requestID":"cf3fbe8aadae8680f76d45a08d63be07"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"4356e130-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:45Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.632838,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:45Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4356e130-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240485,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4NX0.PqOlXTusguY5TdWXdt9j1XZftDfLguTI52TFl-F64Vk"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4356e130-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2","device":"82c1813d-08df-42e7-9530-af1da6c3d889","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"d4a8cd68-5673-4103-8296-a327c6d23cbd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"d4a8cd68-5673-4103-8296-a327c6d23cbd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"d4a8cd68-5673-4103-8296-a327c6d23cbd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fccf9cdba-4065-4294-a9cd-6f0bf5fad5e2': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fccf9cdba-4065-4294-a9cd-6f0bf5fad5e2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"1480beb4-bc99-468d-81ff-bf6faa777bf6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240485.0757122} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6049a2f3-9819-475f-8cc7-5e549feda209","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240485.0758843} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"1436ebf40867c53c0a55a5e9d8f7d265","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1436ebf40867c53c0a55a5e9d8f7d265","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2eebeb5a280f815a030186ab8144f03d","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","method":"POST","requestID":"4356e130-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2"}}},"level":"info","message":"received a callback","requestID":"1436ebf40867c53c0a55a5e9d8f7d265"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2eebeb5a280f815a030186ab8144f03d","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2"}}},"level":"info","message":"received a callback","requestID":"2eebeb5a280f815a030186ab8144f03d"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"4356e130-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2 204 55ms","method":"DELETE","requestID":"4356e130-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":55,"status":204,"url":"/peerconnections/ccf9cdba-4065-4294-a9cd-6f0bf5fad5e2"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0"},"level":"info","message":"Successfully finished experiment","requestID":"cf3fbe8aadae8680f76d45a08d63be07"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"436204c0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:45Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4a8cd68-5673-4103-8296-a327c6d23cbd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6fb066aa-dccc-4070-a2dd-ae5f9d08c142","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240485.1574147} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.831167,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"436204c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"436204c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"436204c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d4a8cd68-5673-4103-8296-a327c6d23cbd/signaling 200 29ms","method":"POST","requestID":"436204c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4366e6c0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F175b1ec4-fdc5-4ebf-80a7-72e27c5192f0': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F175b1ec4-fdc5-4ebf-80a7-72e27c5192f0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"cc59de29-ac04-492e-b5d3-65d14fd401bd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240485.165093} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b43d8f43-573c-4336-a267-35981c2d653a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240485.1652749} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"cf3fbe8aadae8680f76d45a08d63be07","responseTime":37,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:45Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82c1813d-08df-42e7-9530-af1da6c3d889","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1a646486-64bc-4505-a24a-8b37d6552443","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240485.168485} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.497393,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4366e6c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4366e6c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4366e6c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/82c1813d-08df-42e7-9530-af1da6c3d889/signaling 200 8ms","method":"POST","requestID":"4366e6c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/82c1813d-08df-42e7-9530-af1da6c3d889/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0","requestID":"cf3fbe8aadae8680f76d45a08d63be07"} gateway-1 | {"time_local":"18/Jun/2025:09:54:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.222","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cf3fbe8aadae8680f76d45a08d63be07"} gateway-1 | {"time_local":"18/Jun/2025:09:54:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2901","request_time":"4.415","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"bcbbc67febd7c6b40add1966863203a8"} experiment-1 | {"level":"info","message":"DELETE /experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0 204 221ms","method":"DELETE","requestID":"cf3fbe8aadae8680f76d45a08d63be07","responseTime":221,"status":204,"url":"/experiments/175b1ec4-fdc5-4ebf-80a7-72e27c5192f0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 195ms","method":"POST","requestID":"1436ebf40867c53c0a55a5e9d8f7d265","responseTime":195,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 194ms","method":"POST","requestID":"2eebeb5a280f815a030186ab8144f03d","responseTime":194,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4NX0.PqOlXTusguY5TdWXdt9j1XZftDfLguTI52TFl-F64Vk","level":"info","message":"auth send jwt","requestID":"96ea95ba74f59e9ef52a10eea9a977e6"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"96ea95ba74f59e9ef52a10eea9a977e6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"96ea95ba74f59e9ef52a10eea9a977e6"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:45Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.706029,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:45Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"96ea95ba74f59e9ef52a10eea9a977e6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240485,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4NX0.PqOlXTusguY5TdWXdt9j1XZftDfLguTI52TFl-F64Vk"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"96ea95ba74f59e9ef52a10eea9a977e6","responseTime":3,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:54:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.217","http_referrer":"","http_user_agent":"node-fetch","requestID":"1436ebf40867c53c0a55a5e9d8f7d265"} gateway-1 | {"time_local":"18/Jun/2025:09:54:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.215","http_referrer":"","http_user_agent":"node-fetch","requestID":"2eebeb5a280f815a030186ab8144f03d"} gateway-1 | {"time_local":"18/Jun/2025:09:54:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2770","request_time":"3.067","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0c5094370b88a6176f6979ea6dd3b151"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d4a8cd68-5673-4103-8296-a327c6d23cbd' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"340ad2a5-2e9d-4754-a20b-29c32d50955f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240485.3126254} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"96ea95ba74f59e9ef52a10eea9a977e6","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"135a06f6-0f4c-4bdc-9e12-d007ceabfc85","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240485.3173616} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"96ea95ba74f59e9ef52a10eea9a977e6","responseTime":3,"status":200,"url":"/relations/update"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/82c1813d-08df-42e7-9530-af1da6c3d889' closed"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"07eecd15-f008-4adf-889d-f3af90835a13","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240485.32709} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d1f8d362-5240-4cb2-8a08-26a009166f12","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240485.3271837} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"96ea95ba74f59e9ef52a10eea9a977e6","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:45.327069286Z"}]},"request_id":"9fecee3f-ce1e-46ad-ac11-8727db6999b6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240485.3317325} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"96ea95ba74f59e9ef52a10eea9a977e6","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"96ea95ba74f59e9ef52a10eea9a977e6"} gateway-1 | {"time_local":"18/Jun/2025:09:54:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"96ea95ba74f59e9ef52a10eea9a977e6"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"96ea95ba74f59e9ef52a10eea9a977e6","responseTime":50,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4NX0.PqOlXTusguY5TdWXdt9j1XZftDfLguTI52TFl-F64Vk","level":"info","message":"auth send jwt","requestID":"4c6564eade6277add3e654223d1be772"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4c6564eade6277add3e654223d1be772","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"4c6564eade6277add3e654223d1be772"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:45Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.828407,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:45Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4c6564eade6277add3e654223d1be772","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240485,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4NX0.PqOlXTusguY5TdWXdt9j1XZftDfLguTI52TFl-F64Vk"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4c6564eade6277add3e654223d1be772","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f9ec3143-d543-4d7b-ae5e-b91cd7c2d1f8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240485.3552403} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"4c6564eade6277add3e654223d1be772","responseTime":6,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ad477226-778d-401d-af5a-325fe5016a93","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240485.3636134} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"4c6564eade6277add3e654223d1be772","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"23a1afec-8e3e-4745-bcd6-5b6f45753d01","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240485.3980782} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"88a8bc0a-e3b4-4dd8-9510-4198ba134e9a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240485.3981676} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"4c6564eade6277add3e654223d1be772","responseTime":36,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:45.398057592Z"}]},"request_id":"a2b1721f-f4e5-4977-b431-65a5ed745f81","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240485.4017394} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4c6564eade6277add3e654223d1be772","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"4c6564eade6277add3e654223d1be772"} gateway-1 | {"time_local":"18/Jun/2025:09:54:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.068","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4c6564eade6277add3e654223d1be772"} device-1 | {"level":"info","message":"POST /devices? 201 65ms","method":"POST","requestID":"4c6564eade6277add3e654223d1be772","responseTime":65,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE","level":"info","message":"auth send jwt","requestID":"8b3bb605f940fe227fd58fae56600128"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8b3bb605f940fe227fd58fae56600128","responseTime":3,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE","level":"info","message":"auth send jwt","requestID":"ccd5f619aca9828fd09761ecfae57852"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ccd5f619aca9828fd09761ecfae57852","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"8b3bb605f940fe227fd58fae56600128"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"ccd5f619aca9828fd09761ecfae57852"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.583755,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Received request.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8b3bb605f940fe227fd58fae56600128","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240486,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8b3bb605f940fe227fd58fae56600128","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Sent response.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.569491,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ccd5f619aca9828fd09761ecfae57852","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240486,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ccd5f619aca9828fd09761ecfae57852","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:45.398057592Z"}]},"request_id":"d94638f1-0e65-4f1f-8b5e-3e2c48de578f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.324416} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"8b3bb605f940fe227fd58fae56600128","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:45.327069286Z"}]},"request_id":"0e0ba343-7aae-49c9-938b-14983a7ef536","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.3250465} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"ccd5f619aca9828fd09761ecfae57852","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e0049e4e-e4de-48b8-bdaa-69483cbb095f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.3287175} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"8b3bb605f940fe227fd58fae56600128","responseTime":28,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"af1fcb00-0cda-4317-8168-79e89f44ebbd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.3547099} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"ccd5f619aca9828fd09761ecfae57852","responseTime":28,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:45.327069286Z"}]},"request_id":"df08f6a5-09a9-4450-b520-2eb948c294ad","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.3614755} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ccd5f619aca9828fd09761ecfae57852","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"ccd5f619aca9828fd09761ecfae57852"} gateway-1 | {"time_local":"18/Jun/2025:09:54:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/c09b5683-c924-4780-9c55-e044a5810040 HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.054","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"ccd5f619aca9828fd09761ecfae57852"} device-1 | {"level":"info","message":"PATCH /devices/c09b5683-c924-4780-9c55-e044a5810040 200 48ms","method":"PATCH","requestID":"ccd5f619aca9828fd09761ecfae57852","responseTime":48,"status":200,"url":"/devices/c09b5683-c924-4780-9c55-e044a5810040"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE","level":"info","message":"auth send jwt","requestID":"431c550c9b6eb0dd8def162fd77c0759"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"431c550c9b6eb0dd8def162fd77c0759","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"431c550c9b6eb0dd8def162fd77c0759"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Received request.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Sent response.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.778132,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"431c550c9b6eb0dd8def162fd77c0759","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240486,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"431c550c9b6eb0dd8def162fd77c0759","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:45.398057592Z"}]},"request_id":"de8e3541-d399-4fac-bfbb-6bd7e77df517","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.4058123} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"8b3bb605f940fe227fd58fae56600128","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"8b3bb605f940fe227fd58fae56600128"} gateway-1 | {"time_local":"18/Jun/2025:09:54:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/6937b28e-3999-46df-8bfc-61a590ce0bed HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.098","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"8b3bb605f940fe227fd58fae56600128"} device-1 | {"level":"info","message":"PATCH /devices/6937b28e-3999-46df-8bfc-61a590ce0bed 200 93ms","method":"PATCH","requestID":"8b3bb605f940fe227fd58fae56600128","responseTime":93,"status":200,"url":"/devices/6937b28e-3999-46df-8bfc-61a590ce0bed"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE","level":"info","message":"auth send jwt","requestID":"8f0e604d6a5b971043dec360ccf710f6"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8f0e604d6a5b971043dec360ccf710f6","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"8f0e604d6a5b971043dec360ccf710f6"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"431c550c9b6eb0dd8def162fd77c0759"} gateway-1 | {"time_local":"18/Jun/2025:09:54:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c09b5683-c924-4780-9c55-e044a5810040/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.048","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"431c550c9b6eb0dd8def162fd77c0759"} device-1 | {"level":"info","message":"POST /devices/c09b5683-c924-4780-9c55-e044a5810040/websocket 200 44ms","method":"POST","requestID":"431c550c9b6eb0dd8def162fd77c0759","responseTime":44,"status":200,"url":"/devices/c09b5683-c924-4780-9c55-e044a5810040/websocket"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Received request.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Sent response.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.619857,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8f0e604d6a5b971043dec360ccf710f6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240486,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8f0e604d6a5b971043dec360ccf710f6","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"8f0e604d6a5b971043dec360ccf710f6"} gateway-1 | {"time_local":"18/Jun/2025:09:54:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6937b28e-3999-46df-8bfc-61a590ce0bed/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.012","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"8f0e604d6a5b971043dec360ccf710f6"} device-1 | {"level":"info","message":"POST /devices/6937b28e-3999-46df-8bfc-61a590ce0bed/websocket 200 9ms","method":"POST","requestID":"8f0e604d6a5b971043dec360ccf710f6","responseTime":9,"status":200,"url":"/devices/6937b28e-3999-46df-8bfc-61a590ce0bed/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE","level":"info","message":"auth send jwt","requestID":"7ca460bc6974991e6c9f4296722befab"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7ca460bc6974991e6c9f4296722befab","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7ca460bc6974991e6c9f4296722befab"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Received request.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Sent response.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.772908,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7ca460bc6974991e6c9f4296722befab","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240486,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7ca460bc6974991e6c9f4296722befab","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:45.327069286Z"}]},"request_id":"7c4a4c6b-d079-4ea8-ab74-e9319e95d69a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.4690182} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"7ca460bc6974991e6c9f4296722befab","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7ca460bc6974991e6c9f4296722befab"} gateway-1 | {"time_local":"18/Jun/2025:09:54:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c09b5683-c924-4780-9c55-e044a5810040? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7ca460bc6974991e6c9f4296722befab"} device-1 | {"level":"info","message":"GET /devices/c09b5683-c924-4780-9c55-e044a5810040? 200 10ms","method":"GET","requestID":"7ca460bc6974991e6c9f4296722befab","responseTime":10,"status":200,"url":"/devices/c09b5683-c924-4780-9c55-e044a5810040?"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"c4c5a2683c743345edf11cdb5ce1d993"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE","level":"info","message":"auth send jwt","requestID":"c4c5a2683c743345edf11cdb5ce1d993"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c4c5a2683c743345edf11cdb5ce1d993","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Received request.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Sent response.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.618604,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c4c5a2683c743345edf11cdb5ce1d993","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240486,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"c4c5a2683c743345edf11cdb5ce1d993","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:45.398057592Z"}]},"request_id":"a4402303-7a2d-4f20-abbb-8535bbf50119","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.5064995} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c4c5a2683c743345edf11cdb5ce1d993","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"c4c5a2683c743345edf11cdb5ce1d993"} gateway-1 | {"time_local":"18/Jun/2025:09:54:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6937b28e-3999-46df-8bfc-61a590ce0bed? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c4c5a2683c743345edf11cdb5ce1d993"} device-1 | {"level":"info","message":"GET /devices/6937b28e-3999-46df-8bfc-61a590ce0bed? 200 9ms","method":"GET","requestID":"c4c5a2683c743345edf11cdb5ce1d993","responseTime":9,"status":200,"url":"/devices/6937b28e-3999-46df-8bfc-61a590ce0bed?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE","level":"info","message":"auth send jwt","requestID":"02266c6ba06ac36cc3b43f116395d6f5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"02266c6ba06ac36cc3b43f116395d6f5","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"02266c6ba06ac36cc3b43f116395d6f5"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Received request.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Sent response.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.448262,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"02266c6ba06ac36cc3b43f116395d6f5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240486,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"02266c6ba06ac36cc3b43f116395d6f5","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/323d5056-c025-4285-a3c8-e4edfe772c37"},"level":"info","message":"Attempting to run experiment","requestID":"02266c6ba06ac36cc3b43f116395d6f5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/323d5056-c025-4285-a3c8-e4edfe772c37"},"level":"info","message":"Attempting to book experiment","requestID":"02266c6ba06ac36cc3b43f116395d6f5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/323d5056-c025-4285-a3c8-e4edfe772c37"},"level":"info","message":"Successfully booked experiment","requestID":"02266c6ba06ac36cc3b43f116395d6f5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"44411a20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"44414130-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Received request.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Sent response.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.673085,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"44411a20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240486,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"44411a20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.594935,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"44414130-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240486,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"44414130-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:45.327069286Z"}]},"request_id":"d2ea11b3-551f-4746-91ca-2de329d50480","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.6024551} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"44411a20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:45.398057592Z"}]},"request_id":"8a6c9d75-463a-4bb3-920b-dcaa82afb09a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.603239} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"44414130-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"44411a20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/c09b5683-c924-4780-9c55-e044a5810040? 200 13ms","method":"GET","requestID":"44411a20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/c09b5683-c924-4780-9c55-e044a5810040?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"44414130-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/6937b28e-3999-46df-8bfc-61a590ce0bed? 200 12ms","method":"GET","requestID":"44414130-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/6937b28e-3999-46df-8bfc-61a590ce0bed?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/323d5056-c025-4285-a3c8-e4edfe772c37"},"level":"info","message":"Setting up experiment","requestID":"02266c6ba06ac36cc3b43f116395d6f5"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"02266c6ba06ac36cc3b43f116395d6f5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/323d5056-c025-4285-a3c8-e4edfe772c37"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"02266c6ba06ac36cc3b43f116395d6f5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/323d5056-c025-4285-a3c8-e4edfe772c37"},"level":"info","message":"Successfully locked booking for experiment","requestID":"02266c6ba06ac36cc3b43f116395d6f5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/323d5056-c025-4285-a3c8-e4edfe772c37"},"level":"info","message":"Successfully set up experiment","requestID":"02266c6ba06ac36cc3b43f116395d6f5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"444a1ad0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"444a41e0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/323d5056-c025-4285-a3c8-e4edfe772c37"},"level":"info","message":"Successfully running experiment","requestID":"02266c6ba06ac36cc3b43f116395d6f5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.867485,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Received request.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"444a1ad0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240486,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"444a1ad0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Sent response.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.633154,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"444a41e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240486,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"444a41e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:45.327069286Z"}]},"request_id":"6aaccd21-54f4-4bd0-85d6-9fe27b78eb04","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.6620367} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"444a1ad0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:45.398057592Z"}]},"request_id":"1a4a3af6-8460-438b-89eb-cae80a7a6a19","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.662644} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"444a41e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F323d5056-c025-4285-a3c8-e4edfe772c37#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F323d5056-c025-4285-a3c8-e4edfe772c37","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"fae2338a-a8ab-4815-a4ad-bcfacaf6c9e1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.666603} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"68c84e27-b2b8-4221-8242-8341788cf63f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.6671576} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"444a1ad0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/c09b5683-c924-4780-9c55-e044a5810040? 200 38ms","method":"GET","requestID":"444a1ad0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":38,"status":200,"url":"/devices/c09b5683-c924-4780-9c55-e044a5810040?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"444a41e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/6937b28e-3999-46df-8bfc-61a590ce0bed? 200 37ms","method":"GET","requestID":"444a41e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/6937b28e-3999-46df-8bfc-61a590ce0bed?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"02266c6ba06ac36cc3b43f116395d6f5","responseTime":35,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"44505c60-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Received request.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0aa3eb36-8e9b-4611-8b87-981bff84efd1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.698977} experiment-1 | {"data":{"experiment":"http://localhost/experiments/323d5056-c025-4285-a3c8-e4edfe772c37","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"02266c6ba06ac36cc3b43f116395d6f5"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Sent response.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.427256,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} gateway-1 | {"time_local":"18/Jun/2025:09:54:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"786","request_time":"0.189","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"02266c6ba06ac36cc3b43f116395d6f5"} experiment-1 | {"level":"info","message":"POST /experiments? 201 185ms","method":"POST","requestID":"02266c6ba06ac36cc3b43f116395d6f5","responseTime":186,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"44505c60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"44505c60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"44505c60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/c09b5683-c924-4780-9c55-e044a5810040/signaling 200 9ms","method":"POST","requestID":"44505c60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/c09b5683-c924-4780-9c55-e044a5810040/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE","level":"info","message":"auth send jwt","requestID":"31aa6ee461920f49397a906b87c6b3a5"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"31aa6ee461920f49397a906b87c6b3a5","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"31aa6ee461920f49397a906b87c6b3a5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"44523120-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Received request.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Sent response.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.625047,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"31aa6ee461920f49397a906b87c6b3a5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240486,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"31aa6ee461920f49397a906b87c6b3a5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c2a8d829-a8fd-47d4-af55-830798718d3d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.7103214} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.087372,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"44523120-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"44523120-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:45.327069286Z"}]},"request_id":"45ce86dd-e54d-4e83-aa74-e2026d34b3a9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.7121856} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"31aa6ee461920f49397a906b87c6b3a5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"44523120-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/6937b28e-3999-46df-8bfc-61a590ce0bed/signaling 200 10ms","method":"POST","requestID":"44523120-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/6937b28e-3999-46df-8bfc-61a590ce0bed/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"31aa6ee461920f49397a906b87c6b3a5"} gateway-1 | {"time_local":"18/Jun/2025:09:54:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c09b5683-c924-4780-9c55-e044a5810040? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"31aa6ee461920f49397a906b87c6b3a5"} device-1 | {"level":"info","message":"GET /devices/c09b5683-c924-4780-9c55-e044a5810040? 200 37ms","method":"GET","requestID":"31aa6ee461920f49397a906b87c6b3a5","responseTime":37,"status":200,"url":"/devices/c09b5683-c924-4780-9c55-e044a5810040?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/323d5056-c025-4285-a3c8-e4edfe772c37"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"02266c6ba06ac36cc3b43f116395d6f5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4457af60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4457d670-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE","level":"info","message":"auth send jwt","requestID":"8e6c15f50f6db8f29f0ba8829ef2f215"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8e6c15f50f6db8f29f0ba8829ef2f215","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8e6c15f50f6db8f29f0ba8829ef2f215"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.698344,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Received request.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4457af60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240486,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4457af60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55744","level":"info","msg":"Sent response.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.787123,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4457d670-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240486,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4457d670-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.780425,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8e6c15f50f6db8f29f0ba8829ef2f215","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240486,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8e6c15f50f6db8f29f0ba8829ef2f215","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:45.327069286Z"}]},"request_id":"01cf30ca-30f3-473a-bdc9-46a3b44f2ccf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.7534363} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:45.398057592Z"}]},"request_id":"4a68c95b-7b6f-4c71-8681-9b36f8d9543a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.7542791} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"4457af60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"4457d670-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:45.398057592Z"}]},"request_id":"ea4d9f04-5b7b-49d3-bc2a-fac0e78406cb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.7556667} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8e6c15f50f6db8f29f0ba8829ef2f215","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4457af60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/c09b5683-c924-4780-9c55-e044a5810040? 200 43ms","method":"GET","requestID":"4457af60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":43,"status":200,"url":"/devices/c09b5683-c924-4780-9c55-e044a5810040?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4457d670-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/6937b28e-3999-46df-8bfc-61a590ce0bed? 200 42ms","method":"GET","requestID":"4457d670-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":42,"status":200,"url":"/devices/6937b28e-3999-46df-8bfc-61a590ce0bed?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8e6c15f50f6db8f29f0ba8829ef2f215"} gateway-1 | {"time_local":"18/Jun/2025:09:54:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6937b28e-3999-46df-8bfc-61a590ce0bed? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8e6c15f50f6db8f29f0ba8829ef2f215"} device-1 | {"level":"info","message":"GET /devices/6937b28e-3999-46df-8bfc-61a590ce0bed? 200 41ms","method":"GET","requestID":"8e6c15f50f6db8f29f0ba8829ef2f215","responseTime":41,"status":200,"url":"/devices/6937b28e-3999-46df-8bfc-61a590ce0bed?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/323d5056-c025-4285-a3c8-e4edfe772c37"},"level":"info","message":"Building connection plan","requestID":"02266c6ba06ac36cc3b43f116395d6f5"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"4e9720ee-921f-4a3b-8ee0-f13162a981e4"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"5a20405a-ce84-48e2-a0c7-b5dd3218838d"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/file","uuid":"9c2f12d0-f051-45be-a800-85d7e2e12588"}]},"level":"info","message":"Built pairwise service configurations","requestID":"02266c6ba06ac36cc3b43f116395d6f5"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"02266c6ba06ac36cc3b43f116395d6f5"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"445edb50-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.662787,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"445edb50-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240486,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4Nn0.1vI2FTbBKRApGI8zndz0kAD3zt5V_z9JdL_6lr0H8fE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"445edb50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"2e2998e1-379d-432a-9498-33c75a63ec51","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.7996557} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"82679aa7-9335-479e-8922-59a346dc4336","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.8000076} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"445edb50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"445edb50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"445edb50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/5b95da6d-bf42-4bfd-b7f0-aaecc703e24d'","requestID":"445edb50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/5b95da6d-bf42-4bfd-b7f0-aaecc703e24d'","requestID":"445edb50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"445edb50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 23ms","method":"POST","requestID":"445edb50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":23,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"445edb50-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/323d5056-c025-4285-a3c8-e4edfe772c37"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"02266c6ba06ac36cc3b43f116395d6f5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"446e92c0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b3d7ef36-ff87-4334-a0df-c21c45e8131c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.8961725} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.367846,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"446e92c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"446e92c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"446e92c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/c09b5683-c924-4780-9c55-e044a5810040/signaling 200 8ms","method":"POST","requestID":"446e92c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/c09b5683-c924-4780-9c55-e044a5810040/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"44701960-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0ea6d6f1-87a0-424f-a675-e205a16df494","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240486.930763} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.302345,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"44701960-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"44701960-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"44701960-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/6937b28e-3999-46df-8bfc-61a590ce0bed/signaling 200 33ms","method":"POST","requestID":"44701960-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/6937b28e-3999-46df-8bfc-61a590ce0bed/signaling"} device-1 | {"device":"6937b28e-3999-46df-8bfc-61a590ce0bed","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"5b95da6d-bf42-4bfd-b7f0-aaecc703e24d","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"c09b5683-c924-4780-9c55-e044a5810040","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"5b95da6d-bf42-4bfd-b7f0-aaecc703e24d","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"c09b5683-c924-4780-9c55-e044a5810040","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c09b5683-c924-4780-9c55-e044a5810040","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c09b5683-c924-4780-9c55-e044a5810040","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c09b5683-c924-4780-9c55-e044a5810040","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/5b95da6d-bf42-4bfd-b7f0-aaecc703e24d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"5b95da6d-bf42-4bfd-b7f0-aaecc703e24d","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0ee0e8bf9baea5d08010fd26b1897735","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0ee0e8bf9baea5d08010fd26b1897735","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/5b95da6d-bf42-4bfd-b7f0-aaecc703e24d"}}},"level":"info","message":"received a callback","requestID":"0ee0e8bf9baea5d08010fd26b1897735"} device-1 | {"device":"6937b28e-3999-46df-8bfc-61a590ce0bed","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"6937b28e-3999-46df-8bfc-61a590ce0bed","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"6937b28e-3999-46df-8bfc-61a590ce0bed","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"0ee0e8bf9baea5d08010fd26b1897735","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"0ee0e8bf9baea5d08010fd26b1897735"} device-1 | {"device":"c09b5683-c924-4780-9c55-e044a5810040","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"5b95da6d-bf42-4bfd-b7f0-aaecc703e24d","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"6937b28e-3999-46df-8bfc-61a590ce0bed","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c09b5683-c924-4780-9c55-e044a5810040","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"6937b28e-3999-46df-8bfc-61a590ce0bed","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"5b95da6d-bf42-4bfd-b7f0-aaecc703e24d","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/5b95da6d-bf42-4bfd-b7f0-aaecc703e24d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"5b95da6d-bf42-4bfd-b7f0-aaecc703e24d","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"be9371eb0017c11e934f71e9ce523e2e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"be9371eb0017c11e934f71e9ce523e2e","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/5b95da6d-bf42-4bfd-b7f0-aaecc703e24d"}}},"level":"info","message":"received a callback","requestID":"be9371eb0017c11e934f71e9ce523e2e"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"45a60150-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:48Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F5b95da6d-bf42-4bfd-b7f0-aaecc703e24d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4dccb234-45a8-49b3-9fb3-79f63e902009","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240488.9378595} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.849956,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/5b95da6d-bf42-4bfd-b7f0-aaecc703e24d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"45a60150-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/5b95da6d-bf42-4bfd-b7f0-aaecc703e24d","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"45a60150-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"45a60150-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/5b95da6d-bf42-4bfd-b7f0-aaecc703e24d 200 10ms","method":"GET","requestID":"45a60150-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/peerconnections/5b95da6d-bf42-4bfd-b7f0-aaecc703e24d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 37ms","method":"POST","requestID":"be9371eb0017c11e934f71e9ce523e2e","responseTime":37,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch","requestID":"be9371eb0017c11e934f71e9ce523e2e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"45aae350-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:48Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4b65b46e-e68e-40d3-ab3f-c650447c359c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240488.9931724} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.442235,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"45aae350-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"45aae350-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"45aae350-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/c09b5683-c924-4780-9c55-e044a5810040/signaling 200 33ms","method":"POST","requestID":"45aae350-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/c09b5683-c924-4780-9c55-e044a5810040/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"45b03a80-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:49Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dd5a7522-0308-48e1-8a21-96ae6968ca5c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240489.0041862} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.532083,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"45b03a80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"45b03a80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"45b03a80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/6937b28e-3999-46df-8bfc-61a590ce0bed/signaling 200 8ms","method":"POST","requestID":"45b03a80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/6937b28e-3999-46df-8bfc-61a590ce0bed/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4OX0.8KWkaXARB6_n7CrQrgQL3bQttBdW9Cd5vzxzWy1yitQ","level":"info","message":"auth send jwt","requestID":"f485caed0921020863e03a30a0142053"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f485caed0921020863e03a30a0142053","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/323d5056-c025-4285-a3c8-e4edfe772c37","requestID":"f485caed0921020863e03a30a0142053"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:49Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.966169,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/323d5056-c025-4285-a3c8-e4edfe772c37","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f485caed0921020863e03a30a0142053","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/323d5056-c025-4285-a3c8-e4edfe772c37","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240489,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4OX0.8KWkaXARB6_n7CrQrgQL3bQttBdW9Cd5vzxzWy1yitQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f485caed0921020863e03a30a0142053","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/323d5056-c025-4285-a3c8-e4edfe772c37","requestID":"f485caed0921020863e03a30a0142053"} experiment-1 | {"level":"info","message":"GET /experiments/323d5056-c025-4285-a3c8-e4edfe772c37 200 10ms","method":"GET","requestID":"f485caed0921020863e03a30a0142053","responseTime":10,"status":200,"url":"/experiments/323d5056-c025-4285-a3c8-e4edfe772c37"} gateway-1 | {"time_local":"18/Jun/2025:09:54:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/323d5056-c025-4285-a3c8-e4edfe772c37 HTTP/1.1","status": "200","body_bytes_sent":"859","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f485caed0921020863e03a30a0142053"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4OX0.8KWkaXARB6_n7CrQrgQL3bQttBdW9Cd5vzxzWy1yitQ","level":"info","message":"auth send jwt","requestID":"e33e2c97fccc4a54f0751665d97f2194"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e33e2c97fccc4a54f0751665d97f2194","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/323d5056-c025-4285-a3c8-e4edfe772c37","requestID":"e33e2c97fccc4a54f0751665d97f2194"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:49Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.205235,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:49Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/323d5056-c025-4285-a3c8-e4edfe772c37","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e33e2c97fccc4a54f0751665d97f2194","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/323d5056-c025-4285-a3c8-e4edfe772c37","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240489,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4OX0.8KWkaXARB6_n7CrQrgQL3bQttBdW9Cd5vzxzWy1yitQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"e33e2c97fccc4a54f0751665d97f2194","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/323d5056-c025-4285-a3c8-e4edfe772c37"},"level":"info","message":"Attempting to finish experiment","requestID":"e33e2c97fccc4a54f0751665d97f2194"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"45cd5f70-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:49Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.165623,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:49Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/5b95da6d-bf42-4bfd-b7f0-aaecc703e24d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"45cd5f70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/5b95da6d-bf42-4bfd-b7f0-aaecc703e24d","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240489,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4OX0.8KWkaXARB6_n7CrQrgQL3bQttBdW9Cd5vzxzWy1yitQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"45cd5f70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"device":"6937b28e-3999-46df-8bfc-61a590ce0bed","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"6937b28e-3999-46df-8bfc-61a590ce0bed","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"6937b28e-3999-46df-8bfc-61a590ce0bed","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c09b5683-c924-4780-9c55-e044a5810040","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c09b5683-c924-4780-9c55-e044a5810040","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c09b5683-c924-4780-9c55-e044a5810040","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/5b95da6d-bf42-4bfd-b7f0-aaecc703e24d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/5b95da6d-bf42-4bfd-b7f0-aaecc703e24d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"5b95da6d-bf42-4bfd-b7f0-aaecc703e24d","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F5b95da6d-bf42-4bfd-b7f0-aaecc703e24d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F5b95da6d-bf42-4bfd-b7f0-aaecc703e24d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"f866a9a0-26ee-4805-8321-99b48454718b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240489.2335134} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4d0f6f4c-ede5-403c-abdd-3b4683584cf5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240489.2338145} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"625aec042b6317b360ab682e88af20cb","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 30ms","method":"POST","requestID":"45cd5f70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"625aec042b6317b360ab682e88af20cb","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d6d1b4dd6789ff3bc74c92cad2fd362f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d6d1b4dd6789ff3bc74c92cad2fd362f","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/5b95da6d-bf42-4bfd-b7f0-aaecc703e24d"}}},"level":"info","message":"received a callback","requestID":"625aec042b6317b360ab682e88af20cb"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/5b95da6d-bf42-4bfd-b7f0-aaecc703e24d"}}},"level":"info","message":"received a callback","requestID":"d6d1b4dd6789ff3bc74c92cad2fd362f"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"45cd5f70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/5b95da6d-bf42-4bfd-b7f0-aaecc703e24d 204 64ms","method":"DELETE","requestID":"45cd5f70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":64,"status":204,"url":"/peerconnections/5b95da6d-bf42-4bfd-b7f0-aaecc703e24d"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/323d5056-c025-4285-a3c8-e4edfe772c37"},"level":"info","message":"Successfully finished experiment","requestID":"e33e2c97fccc4a54f0751665d97f2194"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"45dd3df0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:49Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc09b5683-c924-4780-9c55-e044a5810040","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2a6882c7-d246-40a5-8040-a0c1b9081afc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240489.301062} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.666268,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"45dd3df0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"45dd3df0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"45dd3df0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/c09b5683-c924-4780-9c55-e044a5810040/signaling 200 34ms","method":"POST","requestID":"45dd3df0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/c09b5683-c924-4780-9c55-e044a5810040/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"45e2e340-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F323d5056-c025-4285-a3c8-e4edfe772c37': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F323d5056-c025-4285-a3c8-e4edfe772c37","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"0501ef51-967b-4993-b8ad-7fc685fdd154","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240489.3339775} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"19db9672-a24c-429d-bbee-4e47633780e3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240489.334217} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:49Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 42ms","method":"POST","requestID":"e33e2c97fccc4a54f0751665d97f2194","responseTime":42,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6937b28e-3999-46df-8bfc-61a590ce0bed","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2d9b0e61-8d80-4f64-b76b-586df5edba92","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240489.336136} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.100311,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"45e2e340-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"45e2e340-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"45e2e340-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/6937b28e-3999-46df-8bfc-61a590ce0bed/signaling 200 8ms","method":"POST","requestID":"45e2e340-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/6937b28e-3999-46df-8bfc-61a590ce0bed/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/323d5056-c025-4285-a3c8-e4edfe772c37","requestID":"e33e2c97fccc4a54f0751665d97f2194"} gateway-1 | {"time_local":"18/Jun/2025:09:54:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/323d5056-c025-4285-a3c8-e4edfe772c37 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.264","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e33e2c97fccc4a54f0751665d97f2194"} experiment-1 | {"level":"info","message":"DELETE /experiments/323d5056-c025-4285-a3c8-e4edfe772c37 204 259ms","method":"DELETE","requestID":"e33e2c97fccc4a54f0751665d97f2194","responseTime":259,"status":204,"url":"/experiments/323d5056-c025-4285-a3c8-e4edfe772c37"} gateway-1 | {"time_local":"18/Jun/2025:09:54:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2775","request_time":"3.014","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"3f3b5b3327c166b81e05c085795b2b18"} gateway-1 | {"time_local":"18/Jun/2025:09:54:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2775","request_time":"3.022","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"83c6b10b541bba07662c4fa9a2ec8b71"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 201ms","method":"POST","requestID":"625aec042b6317b360ab682e88af20cb","responseTime":201,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.205","http_referrer":"","http_user_agent":"node-fetch","requestID":"625aec042b6317b360ab682e88af20cb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 201ms","method":"POST","requestID":"d6d1b4dd6789ff3bc74c92cad2fd362f","responseTime":201,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.205","http_referrer":"","http_user_agent":"node-fetch","requestID":"d6d1b4dd6789ff3bc74c92cad2fd362f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4OX0.8KWkaXARB6_n7CrQrgQL3bQttBdW9Cd5vzxzWy1yitQ","level":"info","message":"auth send jwt","requestID":"3e7b509c44482cafc8d1163333640ac7"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3e7b509c44482cafc8d1163333640ac7","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"3e7b509c44482cafc8d1163333640ac7"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/c09b5683-c924-4780-9c55-e044a5810040' closed"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:49Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.898884,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:49Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3e7b509c44482cafc8d1163333640ac7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240489,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4OX0.8KWkaXARB6_n7CrQrgQL3bQttBdW9Cd5vzxzWy1yitQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3e7b509c44482cafc8d1163333640ac7","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/6937b28e-3999-46df-8bfc-61a590ce0bed' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4bf5f4ed-0f7a-4239-ba8d-8b7c1928091e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240489.4860032} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3e7b509c44482cafc8d1163333640ac7","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8002f024-4113-4857-a1fb-b35b4f083699","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240489.4906237} authorization-1 | {"level":"info","message":"POST /relations/update 200 33ms","method":"POST","requestID":"3e7b509c44482cafc8d1163333640ac7","responseTime":33,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"f59b7bd5-a75e-4ed5-a2e2-ffb9bf96e800","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240489.5235496} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2c4ca215-0534-44c1-96cb-25f4837a1049","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240489.5239315} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"3e7b509c44482cafc8d1163333640ac7","responseTime":36,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:49.523527702Z"}]},"request_id":"2c615e5f-2238-480d-ac29-09082529d0c4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240489.5296597} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"3e7b509c44482cafc8d1163333640ac7","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"3e7b509c44482cafc8d1163333640ac7"} gateway-1 | {"time_local":"18/Jun/2025:09:54:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.095","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3e7b509c44482cafc8d1163333640ac7"} device-1 | {"level":"info","message":"POST /devices? 201 88ms","method":"POST","requestID":"3e7b509c44482cafc8d1163333640ac7","responseTime":88,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4OX0.8KWkaXARB6_n7CrQrgQL3bQttBdW9Cd5vzxzWy1yitQ","level":"info","message":"auth send jwt","requestID":"a32c54ac1ce2e8e90af44522b7b1773c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a32c54ac1ce2e8e90af44522b7b1773c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"a32c54ac1ce2e8e90af44522b7b1773c"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:49Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.76723,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:49Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a32c54ac1ce2e8e90af44522b7b1773c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240489,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ4OX0.8KWkaXARB6_n7CrQrgQL3bQttBdW9Cd5vzxzWy1yitQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"a32c54ac1ce2e8e90af44522b7b1773c","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"6c50e1f7-4023-43bb-8836-7ed616b8ebc9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240489.5881329} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"a32c54ac1ce2e8e90af44522b7b1773c","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9ba42e25-24e0-4807-a79e-d43ce62f5bb9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240489.617874} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"a32c54ac1ce2e8e90af44522b7b1773c","responseTime":28,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"54f9f4fe-a66e-485a-948b-efbef025100b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240489.6295514} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5b22a3dd-38db-4473-b43b-200466c6b716","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240489.6296942} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"a32c54ac1ce2e8e90af44522b7b1773c","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:49.629529235Z"}]},"request_id":"7a3d4f1f-7962-4d82-9497-5c27957d60c4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240489.637907} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"a32c54ac1ce2e8e90af44522b7b1773c","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"a32c54ac1ce2e8e90af44522b7b1773c"} gateway-1 | {"time_local":"18/Jun/2025:09:54:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.132","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a32c54ac1ce2e8e90af44522b7b1773c"} device-1 | {"level":"info","message":"POST /devices? 201 128ms","method":"POST","requestID":"a32c54ac1ce2e8e90af44522b7b1773c","responseTime":128,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"61b0d20f391677463a0a9361bd562b9e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"61b0d20f391677463a0a9361bd562b9e","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.005","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"61b0d20f391677463a0a9361bd562b9e"} device-1 | {"level":"info","message":"OPTIONS /devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9/websocket 200 1ms","method":"OPTIONS","requestID":"61b0d20f391677463a0a9361bd562b9e","responseTime":1,"status":200,"url":"/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"13cca7b87a5ded7e8e90eaa0065261d9","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"13cca7b87a5ded7e8e90eaa0065261d9","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d/websocket 200 1ms","method":"OPTIONS","requestID":"13cca7b87a5ded7e8e90eaa0065261d9","responseTime":1,"status":200,"url":"/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:54:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"13cca7b87a5ded7e8e90eaa0065261d9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5MX0._N73G5XHUHUHgFB9lM19ANWhATt8F7yaReq9VxPqjZ4","level":"info","message":"auth send jwt","requestID":"666635228a8cd92dd9a52477de79a3fe"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"666635228a8cd92dd9a52477de79a3fe","responseTime":6,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5MX0._N73G5XHUHUHgFB9lM19ANWhATt8F7yaReq9VxPqjZ4","level":"info","message":"auth send jwt","requestID":"e8f2156d77e9770ebaec72bc1ff30237"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"666635228a8cd92dd9a52477de79a3fe"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"e8f2156d77e9770ebaec72bc1ff30237","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"e8f2156d77e9770ebaec72bc1ff30237"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:51Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.110617,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:51Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"666635228a8cd92dd9a52477de79a3fe","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240491,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5MX0._N73G5XHUHUHgFB9lM19ANWhATt8F7yaReq9VxPqjZ4"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"666635228a8cd92dd9a52477de79a3fe","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:51Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.019555,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:51Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e8f2156d77e9770ebaec72bc1ff30237","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240491,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5MX0._N73G5XHUHUHgFB9lM19ANWhATt8F7yaReq9VxPqjZ4"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","method":"POST","requestID":"e8f2156d77e9770ebaec72bc1ff30237","responseTime":8,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"666635228a8cd92dd9a52477de79a3fe"} gateway-1 | {"time_local":"18/Jun/2025:09:54:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.050","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"666635228a8cd92dd9a52477de79a3fe"} device-1 | {"level":"info","message":"POST /devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9/websocket 200 42ms","method":"POST","requestID":"666635228a8cd92dd9a52477de79a3fe","responseTime":42,"status":200,"url":"/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"e8f2156d77e9770ebaec72bc1ff30237"} device-1 | {"level":"info","message":"POST /devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d/websocket 200 50ms","method":"POST","requestID":"e8f2156d77e9770ebaec72bc1ff30237","responseTime":50,"status":200,"url":"/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:54:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.059","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e8f2156d77e9770ebaec72bc1ff30237"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"39a87e9d3575c6188c232e744113fd6e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"39a87e9d3575c6188c232e744113fd6e","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"39a87e9d3575c6188c232e744113fd6e"} device-1 | {"level":"info","message":"OPTIONS /devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9? 200 0ms","method":"OPTIONS","requestID":"39a87e9d3575c6188c232e744113fd6e","responseTime":0,"status":200,"url":"/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM","level":"info","message":"auth send jwt","requestID":"1d00d1566197f2c97743ec258f4bd24b"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1d00d1566197f2c97743ec258f4bd24b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"1d00d1566197f2c97743ec258f4bd24b"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.677071,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d1a5a95dc9a30fc9bc7e75901e32f7c7","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d1a5a95dc9a30fc9bc7e75901e32f7c7","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"1d00d1566197f2c97743ec258f4bd24b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240492,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1d00d1566197f2c97743ec258f4bd24b","responseTime":3,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:54:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d1a5a95dc9a30fc9bc7e75901e32f7c7"} device-1 | {"level":"info","message":"OPTIONS /devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d? 200 1ms","method":"OPTIONS","requestID":"d1a5a95dc9a30fc9bc7e75901e32f7c7","responseTime":1,"status":200,"url":"/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM","level":"info","message":"auth send jwt","requestID":"bee0972824259c0dc850b7452891a29e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bee0972824259c0dc850b7452891a29e","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:49.523527702Z"}]},"request_id":"0fc448ac-60c1-4a59-9d51-5a27ab0d3a08","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.077957} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"bee0972824259c0dc850b7452891a29e"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1d00d1566197f2c97743ec258f4bd24b","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.349052,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"bee0972824259c0dc850b7452891a29e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240492,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"bee0972824259c0dc850b7452891a29e","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5ad720dd-237e-4357-8f68-728bfe4f9a9a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.0828242} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"1d00d1566197f2c97743ec258f4bd24b","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:49.523527702Z"}]},"request_id":"d2ff5659-bb1a-434b-a87a-6a5dc8eb6f52","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.0910232} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1d00d1566197f2c97743ec258f4bd24b","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:49.629529235Z"}]},"request_id":"7c7e6160-9a1a-4b01-999b-65cd340edc1a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.091836} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"bee0972824259c0dc850b7452891a29e","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"1d00d1566197f2c97743ec258f4bd24b"} gateway-1 | {"time_local":"18/Jun/2025:09:54:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.032","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1d00d1566197f2c97743ec258f4bd24b"} device-1 | {"level":"info","message":"PATCH /devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9? 200 27ms","method":"PATCH","requestID":"1d00d1566197f2c97743ec258f4bd24b","responseTime":27,"status":200,"url":"/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fb763cb2-3fb4-44a4-b362-6773b4bb9a35","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.099236} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"bee0972824259c0dc850b7452891a29e","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:49.629529235Z"}]},"request_id":"4776d7ac-bcda-4a7b-b7ae-53d9b23f1af7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.1246374} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"bee0972824259c0dc850b7452891a29e","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"bee0972824259c0dc850b7452891a29e"} gateway-1 | {"time_local":"18/Jun/2025:09:54:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.052","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"bee0972824259c0dc850b7452891a29e"} device-1 | {"level":"info","message":"PATCH /devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d? 200 48ms","method":"PATCH","requestID":"bee0972824259c0dc850b7452891a29e","responseTime":48,"status":200,"url":"/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM","level":"info","message":"auth send jwt","requestID":"cf747349c77dc890057591253564373b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cf747349c77dc890057591253564373b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"cf747349c77dc890057591253564373b"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.803306,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"cf747349c77dc890057591253564373b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240492,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"cf747349c77dc890057591253564373b","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:49.523527702Z"}]},"request_id":"070209e1-2008-4dba-b641-34debcf0686b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.1645699} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"cf747349c77dc890057591253564373b","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"cf747349c77dc890057591253564373b"} gateway-1 | {"time_local":"18/Jun/2025:09:54:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cf747349c77dc890057591253564373b"} device-1 | {"level":"info","message":"GET /devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9? 200 34ms","method":"GET","requestID":"cf747349c77dc890057591253564373b","responseTime":34,"status":200,"url":"/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM","level":"info","message":"auth send jwt","requestID":"437c20956942ac34342ca3f01499c323"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"437c20956942ac34342ca3f01499c323","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"437c20956942ac34342ca3f01499c323"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.673385,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"437c20956942ac34342ca3f01499c323","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240492,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"437c20956942ac34342ca3f01499c323","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:49.629529235Z"}]},"request_id":"2fc5b70c-661a-43cf-b475-9f7f845fdc8e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.178599} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"437c20956942ac34342ca3f01499c323","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"437c20956942ac34342ca3f01499c323"} gateway-1 | {"time_local":"18/Jun/2025:09:54:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"437c20956942ac34342ca3f01499c323"} device-1 | {"level":"info","message":"GET /devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d? 200 9ms","method":"GET","requestID":"437c20956942ac34342ca3f01499c323","responseTime":9,"status":200,"url":"/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM","level":"info","message":"auth send jwt","requestID":"e5200f12d3d2ac0113d9894b1bfe128b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e5200f12d3d2ac0113d9894b1bfe128b","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"e5200f12d3d2ac0113d9894b1bfe128b"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":24.890797,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e5200f12d3d2ac0113d9894b1bfe128b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240492,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"e5200f12d3d2ac0113d9894b1bfe128b","responseTime":27,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/502047fc-ec24-4128-93ef-b787b84f70f1"},"level":"info","message":"Attempting to run experiment","requestID":"e5200f12d3d2ac0113d9894b1bfe128b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/502047fc-ec24-4128-93ef-b787b84f70f1"},"level":"info","message":"Attempting to book experiment","requestID":"e5200f12d3d2ac0113d9894b1bfe128b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/502047fc-ec24-4128-93ef-b787b84f70f1"},"level":"info","message":"Successfully booked experiment","requestID":"e5200f12d3d2ac0113d9894b1bfe128b"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"47a4b780-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"47a4de90-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.645712,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"47a4b780-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240492,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"47a4b780-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.674898,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"47a4de90-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240492,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"47a4de90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:49.523527702Z"}]},"request_id":"a4dc60c5-9bc4-4a73-ac0b-7b53e0d371e0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.2908719} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"47a4b780-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:49.629529235Z"}]},"request_id":"56dd86ad-6491-4853-bd51-1fb031de9afc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.2913854} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"47a4de90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"47a4b780-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9? 200 15ms","method":"GET","requestID":"47a4b780-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":15,"status":200,"url":"/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"47a4de90-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d? 200 14ms","method":"GET","requestID":"47a4de90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/502047fc-ec24-4128-93ef-b787b84f70f1"},"level":"info","message":"Setting up experiment","requestID":"e5200f12d3d2ac0113d9894b1bfe128b"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"e5200f12d3d2ac0113d9894b1bfe128b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/502047fc-ec24-4128-93ef-b787b84f70f1"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"e5200f12d3d2ac0113d9894b1bfe128b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/502047fc-ec24-4128-93ef-b787b84f70f1"},"level":"info","message":"Successfully locked booking for experiment","requestID":"e5200f12d3d2ac0113d9894b1bfe128b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/502047fc-ec24-4128-93ef-b787b84f70f1"},"level":"info","message":"Successfully set up experiment","requestID":"e5200f12d3d2ac0113d9894b1bfe128b"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"47ab6e40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"47ab9550-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/502047fc-ec24-4128-93ef-b787b84f70f1"},"level":"info","message":"Successfully running experiment","requestID":"e5200f12d3d2ac0113d9894b1bfe128b"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.691054,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"47ab6e40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240492,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"47ab6e40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.694588,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"47ab9550-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240492,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"47ab9550-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:49.523527702Z"}]},"request_id":"ce501e21-0d8f-49c7-bf0d-8cc965c16f74","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.3330495} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"47ab6e40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:49.629529235Z"}]},"request_id":"9d0dfb14-d9d6-45c5-aea7-3204047ce529","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.333542} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"47ab9550-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"47ab6e40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9? 200 14ms","method":"GET","requestID":"47ab6e40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"47ab9550-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d? 200 14ms","method":"GET","requestID":"47ab9550-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F502047fc-ec24-4128-93ef-b787b84f70f1#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F502047fc-ec24-4128-93ef-b787b84f70f1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"d2b71dc2-8954-4b60-92f3-8f98e75a5a36","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.3404968} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c2109ab4-f6d8-4a8a-af1f-1af46ca1cef1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.3406851} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"e5200f12d3d2ac0113d9894b1bfe128b","responseTime":13,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"47ae2d60-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9998e148-4536-4ddd-acc1-a05ffd01055f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.3478534} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.026182,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/502047fc-ec24-4128-93ef-b787b84f70f1","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"e5200f12d3d2ac0113d9894b1bfe128b"} gateway-1 | {"time_local":"18/Jun/2025:09:54:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"778","request_time":"0.167","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e5200f12d3d2ac0113d9894b1bfe128b"} experiment-1 | {"level":"info","message":"POST /experiments? 201 163ms","method":"POST","requestID":"e5200f12d3d2ac0113d9894b1bfe128b","responseTime":163,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"47ae2d60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"47ae2d60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"47ae2d60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9/signaling 200 10ms","method":"POST","requestID":"47ae2d60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM","level":"info","message":"auth send jwt","requestID":"9574d03954f950bf9f9d96625e6c4e3f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9574d03954f950bf9f9d96625e6c4e3f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"9574d03954f950bf9f9d96625e6c4e3f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"47b02930-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.639333,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9574d03954f950bf9f9d96625e6c4e3f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240492,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"9574d03954f950bf9f9d96625e6c4e3f","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"38108014-7aa4-47a8-9cec-47e58db127ae","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.3607745} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:49.523527702Z"}]},"request_id":"afcf9c46-ae75-460c-86fc-3543426c16b5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.3621073} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.708884,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"47b02930-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"47b02930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"9574d03954f950bf9f9d96625e6c4e3f","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"47b02930-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d/signaling 200 11ms","method":"POST","requestID":"47b02930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"9574d03954f950bf9f9d96625e6c4e3f"} gateway-1 | {"time_local":"18/Jun/2025:09:54:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9574d03954f950bf9f9d96625e6c4e3f"} device-1 | {"level":"info","message":"GET /devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9? 200 13ms","method":"GET","requestID":"9574d03954f950bf9f9d96625e6c4e3f","responseTime":13,"status":200,"url":"/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/502047fc-ec24-4128-93ef-b787b84f70f1"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"e5200f12d3d2ac0113d9894b1bfe128b"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"47b24c10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"47b27320-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM","level":"info","message":"auth send jwt","requestID":"3c191924c14494850453ea4f3258e497"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3c191924c14494850453ea4f3258e497","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3c191924c14494850453ea4f3258e497"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.875056,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"47b24c10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240492,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"47b24c10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.825594,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"47b27320-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240492,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"47b27320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/502047fc-ec24-4128-93ef-b787b84f70f1"},"level":"info","message":"Building connection plan","requestID":"e5200f12d3d2ac0113d9894b1bfe128b"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"8c7fccf3-1f09-496e-a954-514b6a02edf7"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"80414dd9-da3e-448a-8501-0c0dffd05405"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/file","uuid":"29d4e674-952e-4bbe-b6a0-12cb9a520eac"}]},"level":"info","message":"Built pairwise service configurations","requestID":"e5200f12d3d2ac0113d9894b1bfe128b"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":10.235307,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3c191924c14494850453ea4f3258e497","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240492,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM"} authorization-1 | {"level":"info","message":"POST /authorize 200 13ms","method":"POST","requestID":"3c191924c14494850453ea4f3258e497","responseTime":13,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:49.629529235Z"}]},"request_id":"682d6ec1-2c1d-4ac1-bb79-1a4d0abaead8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.3874345} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:49.523527702Z"}]},"request_id":"9b6e791c-8ae7-4454-9b3b-99ea6ac619f5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.3898814} authorization-1 | {"level":"info","message":"POST /relations/query 200 15ms","method":"POST","requestID":"47b27320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":15,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"47b24c10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:49.629529235Z"}]},"request_id":"7912640e-6cbc-4764-8353-155f8cf75eb9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.3960655} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"47b27320-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d? 200 27ms","method":"GET","requestID":"47b27320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"47b24c10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9? 200 28ms","method":"GET","requestID":"47b24c10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 10ms","method":"POST","requestID":"3c191924c14494850453ea4f3258e497","responseTime":10,"status":200,"url":"/relations/query"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"47b75520-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"47b75520-4c2a-11f0-b702-8b8a85c3ad9a"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3c191924c14494850453ea4f3258e497"} forwarding-1 | {"level":"info","message":"POST /rooms 201 2ms","method":"POST","requestID":"47b75520-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":2,"status":201,"url":"/rooms"} gateway-1 | {"time_local":"18/Jun/2025:09:54:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3c191924c14494850453ea4f3258e497"} device-1 | {"level":"info","message":"GET /devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d? 200 32ms","method":"GET","requestID":"3c191924c14494850453ea4f3258e497","responseTime":32,"status":200,"url":"/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d?"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd?id=91a291b3-e250-42dd-a904-8b1288ead8b3","ws://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd?id=06481ab8-24eb-4f5e-a706-2f66689386a0"]},"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"e5200f12d3d2ac0113d9894b1bfe128b"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"47b81870-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.739912,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"47b81870-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240492,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"47b81870-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"30cc4960-3e50-4486-b130-37e211da3b86","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.4188752} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fd0b4527-429f-4dd7-a1fb-cd0a7adadb26","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.419146} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"47b81870-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"47b81870-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"47b81870-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b'","requestID":"47b81870-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b'","requestID":"47b81870-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"47b81870-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 53ms","method":"POST","requestID":"47b81870-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":53,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"47b81870-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"008d3cc7-bb8f-435b-be62-4a9bdebc2e9b","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"47c5fb20-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\"","requestID":"47c5fb20-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"47c5fb20-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"47c62230-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"3b05e67b727a7d7af72538403fc07e70","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"91a291b3-e250-42dd-a904-8b1288ead8b3\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\"","requestID":"47c62230-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"47c62230-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3b05e67b727a7d7af72538403fc07e70","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b"}}},"level":"info","message":"received a callback","requestID":"3b05e67b727a7d7af72538403fc07e70"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} device-1 | {"data":{"peerconnection":"008d3cc7-bb8f-435b-be62-4a9bdebc2e9b","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 11ms","method":"POST","requestID":"3b05e67b727a7d7af72538403fc07e70","responseTime":11,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch","requestID":"3b05e67b727a7d7af72538403fc07e70"} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} device-1 | {"data":{"peerconnection":"008d3cc7-bb8f-435b-be62-4a9bdebc2e9b","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/502047fc-ec24-4128-93ef-b787b84f70f1"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"e5200f12d3d2ac0113d9894b1bfe128b"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"47cdc350-4c2a-11f0-a085-a5c7b3a0c4e5"} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c102891e-bd9c-49a4-a7e2-579fb57f30a8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.5543807} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.121764,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"47cdc350-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"47cdc350-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"008d3cc7-bb8f-435b-be62-4a9bdebc2e9b","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"47cdc350-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9/signaling 200 18ms","method":"POST","requestID":"47cdc350-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":18,"status":200,"url":"/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9/signaling"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0447e32f1f365a0e9109ebbfbb4ef365","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0447e32f1f365a0e9109ebbfbb4ef365","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"47d4a120-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b"}}},"level":"info","message":"received a callback","requestID":"0447e32f1f365a0e9109ebbfbb4ef365"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e6d231de-6eef-461f-b75a-27a9e497a418","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.5990217} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.838906,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"47d56470-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"47d4a120-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"47d4a120-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"47d4a120-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d/signaling 200 11ms","method":"POST","requestID":"47d4a120-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F008d3cc7-bb8f-435b-be62-4a9bdebc2e9b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"df3dc55b-c64a-4e43-9c4f-b1f8664dcdee","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.6056297} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.055659,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"47d56470-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"47d56470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"47d56470-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b 200 10ms","method":"GET","requestID":"47d56470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 53ms","method":"POST","requestID":"0447e32f1f365a0e9109ebbfbb4ef365","responseTime":53,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.082","http_referrer":"","http_user_agent":"node-fetch","requestID":"0447e32f1f365a0e9109ebbfbb4ef365"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"47dcde80-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"341106de-a2e6-4c17-8212-82fb2614c67b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.6533916} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.518538,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"47dcde80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"47dcde80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"47dcde80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9/signaling 200 10ms","method":"POST","requestID":"47dcde80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"47deb340-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9c477b25-e1ea-4ba5-9a87-37d74c39cd1a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.6645362} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.52083,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"47deb340-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"47deb340-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"47deb340-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d/signaling 200 33ms","method":"POST","requestID":"47deb340-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM","level":"info","message":"auth send jwt","requestID":"4146839209efa0a72d15e945d39fc3e2"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4146839209efa0a72d15e945d39fc3e2","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/502047fc-ec24-4128-93ef-b787b84f70f1","requestID":"4146839209efa0a72d15e945d39fc3e2"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.247165,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/502047fc-ec24-4128-93ef-b787b84f70f1","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4146839209efa0a72d15e945d39fc3e2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/502047fc-ec24-4128-93ef-b787b84f70f1","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240492,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4146839209efa0a72d15e945d39fc3e2","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/502047fc-ec24-4128-93ef-b787b84f70f1","requestID":"4146839209efa0a72d15e945d39fc3e2"} gateway-1 | {"time_local":"18/Jun/2025:09:54:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/502047fc-ec24-4128-93ef-b787b84f70f1 HTTP/1.1","status": "200","body_bytes_sent":"851","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4146839209efa0a72d15e945d39fc3e2"} experiment-1 | {"level":"info","message":"GET /experiments/502047fc-ec24-4128-93ef-b787b84f70f1 200 15ms","method":"GET","requestID":"4146839209efa0a72d15e945d39fc3e2","responseTime":15,"status":200,"url":"/experiments/502047fc-ec24-4128-93ef-b787b84f70f1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM","level":"info","message":"auth send jwt","requestID":"4a7a14765597708dbf2b171d69cf9f2d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4a7a14765597708dbf2b171d69cf9f2d","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/502047fc-ec24-4128-93ef-b787b84f70f1","requestID":"4a7a14765597708dbf2b171d69cf9f2d"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.924439,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/502047fc-ec24-4128-93ef-b787b84f70f1","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4a7a14765597708dbf2b171d69cf9f2d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/502047fc-ec24-4128-93ef-b787b84f70f1","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240492,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4a7a14765597708dbf2b171d69cf9f2d","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/502047fc-ec24-4128-93ef-b787b84f70f1"},"level":"info","message":"Attempting to finish experiment","requestID":"4a7a14765597708dbf2b171d69cf9f2d"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"47ff3390-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.48778,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"47ff3390-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240492,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Mn0.DpDAmQW1l5GbcqI2wajeUCcTBedJyMYaqLFeeJ0ymeM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"47ff3390-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b","device":"1746bf57-0b54-41fc-95d6-7acf5a1a853d","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} gateway-1 | {"time_local":"18/Jun/2025:09:54:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd?id=06481ab8-24eb-4f5e-a706-2f66689386a0 HTTP/1.1","status": "101","body_bytes_sent":"940749","request_time":"0.413","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"94fc8104bfb0f0d23ac417de522b19ff"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b","device":"d41af233-7e9c-432d-93c7-6e6f9d4d31f9","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} gateway-1 | {"time_local":"18/Jun/2025:09:54:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd?id=91a291b3-e250-42dd-a904-8b1288ead8b3 HTTP/1.1","status": "101","body_bytes_sent":"2","request_time":"0.414","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"46ede2423decfee52d96dfd725e14ace"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" from room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\", code: 1005, reason: "} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"008d3cc7-bb8f-435b-be62-4a9bdebc2e9b","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"91a291b3-e250-42dd-a904-8b1288ead8b3\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"91a291b3-e250-42dd-a904-8b1288ead8b3\" from room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\", code: 1005, reason: "} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F008d3cc7-bb8f-435b-be62-4a9bdebc2e9b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F008d3cc7-bb8f-435b-be62-4a9bdebc2e9b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"e650f887-d739-4f2e-a257-0791b8f1199d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.8889356} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"842eb186-c559-44e7-a5ab-a907d66d28af","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.8892038} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b302795367e92585e2fa4aaf93a03463","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b302795367e92585e2fa4aaf93a03463","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"47ff3390-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"475cfb52100dc21f7cb22f5dfd32076b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"475cfb52100dc21f7cb22f5dfd32076b","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b"}}},"level":"info","message":"received a callback","requestID":"b302795367e92585e2fa4aaf93a03463"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b"}}},"level":"info","message":"received a callback","requestID":"475cfb52100dc21f7cb22f5dfd32076b"} device-1 | {"data":{"peerconnection":"008d3cc7-bb8f-435b-be62-4a9bdebc2e9b","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"47ff3390-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b 204 49ms","method":"DELETE","requestID":"47ff3390-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":49,"status":204,"url":"/peerconnections/008d3cc7-bb8f-435b-be62-4a9bdebc2e9b"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d'"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/502047fc-ec24-4128-93ef-b787b84f70f1"},"level":"info","message":"Successfully finished experiment","requestID":"4a7a14765597708dbf2b171d69cf9f2d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"480a3010-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41af233-7e9c-432d-93c7-6e6f9d4d31f9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"edbd4b10-efc2-4f75-a49c-7510f76c02cc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.950417} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.460079,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"480a3010-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"480a3010-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"480a3010-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9/signaling 200 10ms","method":"POST","requestID":"480a3010-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F502047fc-ec24-4128-93ef-b787b84f70f1': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F502047fc-ec24-4128-93ef-b787b84f70f1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"0b15f3be-bf7d-4f62-aff7-6bf408214e89","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.9562688} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1dca0517-2139-4afa-b04f-e1ee7d453d4f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.9564693} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","method":"POST","requestID":"4a7a14765597708dbf2b171d69cf9f2d","responseTime":19,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1746bf57-0b54-41fc-95d6-7acf5a1a853d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b68da397-8305-4946-b649-9d472660b0f7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240492.9654343} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.080342,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"480c2be0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"480c2be0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"480c2be0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"480c2be0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d/signaling 200 20ms","method":"POST","requestID":"480c2be0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":20,"status":200,"url":"/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/502047fc-ec24-4128-93ef-b787b84f70f1","requestID":"4a7a14765597708dbf2b171d69cf9f2d"} gateway-1 | {"time_local":"18/Jun/2025:09:54:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/502047fc-ec24-4128-93ef-b787b84f70f1 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.180","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4a7a14765597708dbf2b171d69cf9f2d"} experiment-1 | {"level":"info","message":"DELETE /experiments/502047fc-ec24-4128-93ef-b787b84f70f1 204 178ms","method":"DELETE","requestID":"4a7a14765597708dbf2b171d69cf9f2d","responseTime":178,"status":204,"url":"/experiments/502047fc-ec24-4128-93ef-b787b84f70f1"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 153ms","method":"POST","requestID":"b302795367e92585e2fa4aaf93a03463","responseTime":153,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.156","http_referrer":"","http_user_agent":"node-fetch","requestID":"b302795367e92585e2fa4aaf93a03463"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 153ms","method":"POST","requestID":"475cfb52100dc21f7cb22f5dfd32076b","responseTime":153,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.157","http_referrer":"","http_user_agent":"node-fetch","requestID":"475cfb52100dc21f7cb22f5dfd32076b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5M30.P2YKuNxv43YzDvb95QKZEDSmFTqgFHgp79zfgCDEiaM","level":"info","message":"auth send jwt","requestID":"63a720b53acc217672768b1961cbbc7c"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"63a720b53acc217672768b1961cbbc7c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"63a720b53acc217672768b1961cbbc7c"} gateway-1 | {"time_local":"18/Jun/2025:09:54:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1338","request_time":"1.038","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4b236700750ad28906e05c1150e1e260"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:53Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.873832,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:53Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"63a720b53acc217672768b1961cbbc7c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240493,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5M30.P2YKuNxv43YzDvb95QKZEDSmFTqgFHgp79zfgCDEiaM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"63a720b53acc217672768b1961cbbc7c","responseTime":5,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:54:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1337","request_time":"1.039","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"95b6d32020173ee35e02559803b55836"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d41af233-7e9c-432d-93c7-6e6f9d4d31f9' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5da553db-92ff-4d80-9064-bc075285d6ab","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240493.0948663} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"63a720b53acc217672768b1961cbbc7c","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5edc4063-2cb4-4da8-bd45-4f286c11d711","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240493.123396} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"63a720b53acc217672768b1961cbbc7c","responseTime":3,"status":200,"url":"/relations/update"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/1746bf57-0b54-41fc-95d6-7acf5a1a853d' closed"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"11c30f69-6beb-4cf0-996a-11f1cb602be6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240493.1343453} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3479bff8-7332-4f7c-9dd3-fcb236c66c37","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240493.1346686} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"63a720b53acc217672768b1961cbbc7c","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:53.134323599Z"}]},"request_id":"b5e5e356-e7b6-477a-9486-3337e8036b15","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240493.1380281} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"63a720b53acc217672768b1961cbbc7c","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"63a720b53acc217672768b1961cbbc7c"} gateway-1 | {"time_local":"18/Jun/2025:09:54:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.095","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"63a720b53acc217672768b1961cbbc7c"} device-1 | {"level":"info","message":"POST /devices? 201 66ms","method":"POST","requestID":"63a720b53acc217672768b1961cbbc7c","responseTime":66,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5M30.P2YKuNxv43YzDvb95QKZEDSmFTqgFHgp79zfgCDEiaM","level":"info","message":"auth send jwt","requestID":"efb4dce12d1120e30a810f08d3ca4246"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"efb4dce12d1120e30a810f08d3ca4246","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"efb4dce12d1120e30a810f08d3ca4246"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:53Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.670097,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:53Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"efb4dce12d1120e30a810f08d3ca4246","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240493,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5M30.P2YKuNxv43YzDvb95QKZEDSmFTqgFHgp79zfgCDEiaM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"efb4dce12d1120e30a810f08d3ca4246","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0d8ff597-6449-4ede-8dd8-56c4d56e6090","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240493.183383} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"efb4dce12d1120e30a810f08d3ca4246","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"45f5cae1-9ab1-4cd0-8416-fbc249bd23e9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240493.1871667} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"efb4dce12d1120e30a810f08d3ca4246","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"c63951a6-7f5f-4212-b7ac-d9a963ac67fa","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240493.2192535} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"186a04c6-b3bc-4410-91b8-f1f792369fc9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240493.2193952} authorization-1 | {"level":"info","message":"POST /relations/update 200 34ms","method":"POST","requestID":"efb4dce12d1120e30a810f08d3ca4246","responseTime":34,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:53.219233539Z"}]},"request_id":"67bc3229-ad0f-47cc-8d61-17a125eb52a5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240493.2230983} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"efb4dce12d1120e30a810f08d3ca4246","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"efb4dce12d1120e30a810f08d3ca4246"} gateway-1 | {"time_local":"18/Jun/2025:09:54:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.085","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"efb4dce12d1120e30a810f08d3ca4246"} device-1 | {"level":"info","message":"POST /devices? 201 81ms","method":"POST","requestID":"efb4dce12d1120e30a810f08d3ca4246","responseTime":81,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NH0.A9tvdiLjSpWjO8fUmYyrMxzyoVHCcs13qZEmYKbcdD8","level":"info","message":"auth send jwt","requestID":"62e07a5a374049eae6f0ceb8a2f16a60"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"62e07a5a374049eae6f0ceb8a2f16a60","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"62e07a5a374049eae6f0ceb8a2f16a60"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:54Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.786388,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"62e07a5a374049eae6f0ceb8a2f16a60","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240494,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NH0.A9tvdiLjSpWjO8fUmYyrMxzyoVHCcs13qZEmYKbcdD8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"62e07a5a374049eae6f0ceb8a2f16a60","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:53.219233539Z"}]},"request_id":"0f4ef526-ea7b-44a7-84b4-761d0fa70c54","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240494.1888533} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"62e07a5a374049eae6f0ceb8a2f16a60","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6104811a-3a4e-4b57-adc4-c0bdc66ca8ff","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240494.1933174} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"62e07a5a374049eae6f0ceb8a2f16a60","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:53.219233539Z"}]},"request_id":"9819799f-ac89-422c-92a5-58bbc7ad0ddc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240494.23293} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"62e07a5a374049eae6f0ceb8a2f16a60","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"62e07a5a374049eae6f0ceb8a2f16a60"} device-1 | {"level":"info","message":"PATCH /devices/e40a1726-52ef-4c01-b787-5f9961c38596 200 54ms","method":"PATCH","requestID":"62e07a5a374049eae6f0ceb8a2f16a60","responseTime":54,"status":200,"url":"/devices/e40a1726-52ef-4c01-b787-5f9961c38596"} gateway-1 | {"time_local":"18/Jun/2025:09:54:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/e40a1726-52ef-4c01-b787-5f9961c38596 HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.082","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"62e07a5a374049eae6f0ceb8a2f16a60"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NH0.A9tvdiLjSpWjO8fUmYyrMxzyoVHCcs13qZEmYKbcdD8","level":"info","message":"auth send jwt","requestID":"cd159882074e1f3c2ae4302fb0ddad56"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cd159882074e1f3c2ae4302fb0ddad56","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"cd159882074e1f3c2ae4302fb0ddad56"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:54Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.777589,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"cd159882074e1f3c2ae4302fb0ddad56","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240494,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NH0.A9tvdiLjSpWjO8fUmYyrMxzyoVHCcs13qZEmYKbcdD8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"cd159882074e1f3c2ae4302fb0ddad56","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"cd159882074e1f3c2ae4302fb0ddad56"} device-1 | {"level":"info","message":"POST /devices/e40a1726-52ef-4c01-b787-5f9961c38596/websocket 200 39ms","method":"POST","requestID":"cd159882074e1f3c2ae4302fb0ddad56","responseTime":39,"status":200,"url":"/devices/e40a1726-52ef-4c01-b787-5f9961c38596/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:54:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e40a1726-52ef-4c01-b787-5f9961c38596/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.043","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"cd159882074e1f3c2ae4302fb0ddad56"} device-1 | {"level":"info","message":"device 'http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b8003c6710733c2adda1bd176ac81972","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b8003c6710733c2adda1bd176ac81972","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b8003c6710733c2adda1bd176ac81972"} device-1 | {"level":"info","message":"OPTIONS /devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81/websocket 200 1ms","method":"OPTIONS","requestID":"b8003c6710733c2adda1bd176ac81972","responseTime":1,"status":200,"url":"/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NX0.CsUJdNBo1b3bh7-MffMNejwf1OYGD8uWt6J9m1sZbIw","level":"info","message":"auth send jwt","requestID":"3d1cb21db6cee6eba65e5818a09e1b30"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3d1cb21db6cee6eba65e5818a09e1b30","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"3d1cb21db6cee6eba65e5818a09e1b30"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.006764,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3d1cb21db6cee6eba65e5818a09e1b30","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240495,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NX0.CsUJdNBo1b3bh7-MffMNejwf1OYGD8uWt6J9m1sZbIw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"3d1cb21db6cee6eba65e5818a09e1b30","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"3d1cb21db6cee6eba65e5818a09e1b30"} device-1 | {"level":"info","message":"POST /devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81/websocket 200 33ms","method":"POST","requestID":"3d1cb21db6cee6eba65e5818a09e1b30","responseTime":33,"status":200,"url":"/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:54:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.038","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3d1cb21db6cee6eba65e5818a09e1b30"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"fcd31c3e514b56eea5e62b9de8640da5","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"fcd31c3e514b56eea5e62b9de8640da5","responseTime":0,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81? 200 1ms","method":"OPTIONS","requestID":"fcd31c3e514b56eea5e62b9de8640da5","responseTime":1,"status":200,"url":"/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"fcd31c3e514b56eea5e62b9de8640da5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NX0.CsUJdNBo1b3bh7-MffMNejwf1OYGD8uWt6J9m1sZbIw","level":"info","message":"auth send jwt","requestID":"59a415cd462a85e685ed7f991a4a2cd0"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"59a415cd462a85e685ed7f991a4a2cd0","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"59a415cd462a85e685ed7f991a4a2cd0"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.666863,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"59a415cd462a85e685ed7f991a4a2cd0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240495,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NX0.CsUJdNBo1b3bh7-MffMNejwf1OYGD8uWt6J9m1sZbIw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"59a415cd462a85e685ed7f991a4a2cd0","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:53.134323599Z"}]},"request_id":"6b8e132b-ffff-4e72-a05e-2057cee1104d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240495.7112958} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"59a415cd462a85e685ed7f991a4a2cd0","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"57607a98-99ad-46d8-8942-98062704bb00","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240495.7165022} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"59a415cd462a85e685ed7f991a4a2cd0","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:53.134323599Z"}]},"request_id":"a5d9490b-579c-4a46-9591-97e25d4832d7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240495.728496} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"59a415cd462a85e685ed7f991a4a2cd0","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"59a415cd462a85e685ed7f991a4a2cd0"} gateway-1 | {"time_local":"18/Jun/2025:09:54:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.034","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"59a415cd462a85e685ed7f991a4a2cd0"} device-1 | {"level":"info","message":"PATCH /devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81? 200 30ms","method":"PATCH","requestID":"59a415cd462a85e685ed7f991a4a2cd0","responseTime":30,"status":200,"url":"/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NX0.CsUJdNBo1b3bh7-MffMNejwf1OYGD8uWt6J9m1sZbIw","level":"info","message":"auth send jwt","requestID":"44a27726ec5ac5654a5f50bdb3671116"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"44a27726ec5ac5654a5f50bdb3671116","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"44a27726ec5ac5654a5f50bdb3671116"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.601875,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"44a27726ec5ac5654a5f50bdb3671116","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240495,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NX0.CsUJdNBo1b3bh7-MffMNejwf1OYGD8uWt6J9m1sZbIw"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"44a27726ec5ac5654a5f50bdb3671116","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:53.134323599Z"}]},"request_id":"6b645d23-ce90-4ad7-9709-4f4394bd4d16","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240495.7495172} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"44a27726ec5ac5654a5f50bdb3671116","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"44a27726ec5ac5654a5f50bdb3671116"} device-1 | {"level":"info","message":"GET /devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81? 200 13ms","method":"GET","requestID":"44a27726ec5ac5654a5f50bdb3671116","responseTime":13,"status":200,"url":"/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NX0.CsUJdNBo1b3bh7-MffMNejwf1OYGD8uWt6J9m1sZbIw","level":"info","message":"auth send jwt","requestID":"a70ac31910da0f2a1c7ceb0d42f7d847"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a70ac31910da0f2a1c7ceb0d42f7d847"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a70ac31910da0f2a1c7ceb0d42f7d847","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.599688,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a70ac31910da0f2a1c7ceb0d42f7d847","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240495,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NX0.CsUJdNBo1b3bh7-MffMNejwf1OYGD8uWt6J9m1sZbIw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a70ac31910da0f2a1c7ceb0d42f7d847","responseTime":3,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:54:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"44a27726ec5ac5654a5f50bdb3671116"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:53.219233539Z"}]},"request_id":"f23cded8-94dd-46fd-a4a4-32300d1afa9c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240495.7623315} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a70ac31910da0f2a1c7ceb0d42f7d847","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"a70ac31910da0f2a1c7ceb0d42f7d847"} gateway-1 | {"time_local":"18/Jun/2025:09:54:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e40a1726-52ef-4c01-b787-5f9961c38596? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a70ac31910da0f2a1c7ceb0d42f7d847"} device-1 | {"level":"info","message":"GET /devices/e40a1726-52ef-4c01-b787-5f9961c38596? 200 9ms","method":"GET","requestID":"a70ac31910da0f2a1c7ceb0d42f7d847","responseTime":9,"status":200,"url":"/devices/e40a1726-52ef-4c01-b787-5f9961c38596?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NX0.CsUJdNBo1b3bh7-MffMNejwf1OYGD8uWt6J9m1sZbIw","level":"info","message":"auth send jwt","requestID":"11e90532bfae54212348c0e9b626ae1a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"11e90532bfae54212348c0e9b626ae1a","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"11e90532bfae54212348c0e9b626ae1a"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.232527,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"11e90532bfae54212348c0e9b626ae1a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240495,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NX0.CsUJdNBo1b3bh7-MffMNejwf1OYGD8uWt6J9m1sZbIw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"11e90532bfae54212348c0e9b626ae1a","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210"},"level":"info","message":"Attempting to run experiment","requestID":"11e90532bfae54212348c0e9b626ae1a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210"},"level":"info","message":"Attempting to book experiment","requestID":"11e90532bfae54212348c0e9b626ae1a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210"},"level":"info","message":"Successfully booked experiment","requestID":"11e90532bfae54212348c0e9b626ae1a"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"49c21940-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"49c24050-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.92041,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.9715,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"49c21940-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240495,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NX0.CsUJdNBo1b3bh7-MffMNejwf1OYGD8uWt6J9m1sZbIw"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"49c21940-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"49c24050-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240495,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NX0.CsUJdNBo1b3bh7-MffMNejwf1OYGD8uWt6J9m1sZbIw"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"49c24050-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:53.134323599Z"}]},"request_id":"f6db1c95-b308-4dd3-94e9-2849c4d5d6f7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240495.8614774} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"49c21940-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:53.219233539Z"}]},"request_id":"4835a86f-ed42-4cb1-9f48-f17a9fd8eb5e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240495.8621337} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"49c24050-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"49c21940-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81? 200 38ms","method":"GET","requestID":"49c21940-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":38,"status":200,"url":"/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"49c24050-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/e40a1726-52ef-4c01-b787-5f9961c38596? 200 37ms","method":"GET","requestID":"49c24050-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/e40a1726-52ef-4c01-b787-5f9961c38596?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210"},"level":"info","message":"Setting up experiment","requestID":"11e90532bfae54212348c0e9b626ae1a"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"11e90532bfae54212348c0e9b626ae1a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"11e90532bfae54212348c0e9b626ae1a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210"},"level":"info","message":"Successfully locked booking for experiment","requestID":"11e90532bfae54212348c0e9b626ae1a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210"},"level":"info","message":"Successfully set up experiment","requestID":"11e90532bfae54212348c0e9b626ae1a"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"49cec370-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"49cf1190-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.833544,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"49cec370-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240495,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NX0.CsUJdNBo1b3bh7-MffMNejwf1OYGD8uWt6J9m1sZbIw"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210"},"level":"info","message":"Successfully running experiment","requestID":"11e90532bfae54212348c0e9b626ae1a"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"49cec370-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.656961,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"49cf1190-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240495,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NX0.CsUJdNBo1b3bh7-MffMNejwf1OYGD8uWt6J9m1sZbIw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"49cf1190-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:53.134323599Z"}]},"request_id":"96c0653b-21c3-40cb-9c3d-71dceb781ad7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240495.920783} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"49cec370-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:53.219233539Z"}]},"request_id":"d99dfe4d-6305-4a53-bcfc-98362e6d31f2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240495.9218457} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"49cf1190-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"49cec370-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81? 200 15ms","method":"GET","requestID":"49cec370-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":15,"status":200,"url":"/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"49cf1190-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/e40a1726-52ef-4c01-b787-5f9961c38596? 200 14ms","method":"GET","requestID":"49cf1190-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/e40a1726-52ef-4c01-b787-5f9961c38596?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"49d52c10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb4d82501-5e6c-4817-9939-32c9fcf8f210#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb4d82501-5e6c-4817-9939-32c9fcf8f210","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"e8dd7077-75bc-4ac7-a08d-9eb591e0501e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240495.9554436} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1df879cd-6514-4129-add2-c44e76370b49","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240495.9556658} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"11e90532bfae54212348c0e9b626ae1a","responseTime":40,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d95614ec-ad38-4f29-a6f9-3e426465d98e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240495.9584208} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.583832,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"49d52c10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"49d52c10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"49d52c10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81/signaling 200 9ms","method":"POST","requestID":"49d52c10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"11e90532bfae54212348c0e9b626ae1a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"49d700d0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"level":"info","message":"POST /experiments? 201 196ms","method":"POST","requestID":"11e90532bfae54212348c0e9b626ae1a","responseTime":196,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"782","request_time":"0.199","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"11e90532bfae54212348c0e9b626ae1a"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"808737d4-10d6-43da-9495-7604610b6c21","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240495.9693801} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.48671,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:55Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NX0.CsUJdNBo1b3bh7-MffMNejwf1OYGD8uWt6J9m1sZbIw","level":"info","message":"auth send jwt","requestID":"ce917824d5235454fc2c831363a556ed"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ce917824d5235454fc2c831363a556ed","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"49d700d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"49d700d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ce917824d5235454fc2c831363a556ed"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:55Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.697417,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:55Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"49d700d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/e40a1726-52ef-4c01-b787-5f9961c38596/signaling 200 10ms","method":"POST","requestID":"49d700d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/e40a1726-52ef-4c01-b787-5f9961c38596/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ce917824d5235454fc2c831363a556ed","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240495,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NX0.CsUJdNBo1b3bh7-MffMNejwf1OYGD8uWt6J9m1sZbIw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"ce917824d5235454fc2c831363a556ed","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"11e90532bfae54212348c0e9b626ae1a"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"49dc7f10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"49dca620-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:53.134323599Z"}]},"request_id":"6ddd48e2-02a5-489c-b05b-a75e7ba218f4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.0033684} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"ce917824d5235454fc2c831363a556ed","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.57856,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.578414,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"49dc7f10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240495,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NX0.CsUJdNBo1b3bh7-MffMNejwf1OYGD8uWt6J9m1sZbIw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"49dc7f10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"49dca620-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240495,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NX0.CsUJdNBo1b3bh7-MffMNejwf1OYGD8uWt6J9m1sZbIw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"49dca620-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ce917824d5235454fc2c831363a556ed"} gateway-1 | {"time_local":"18/Jun/2025:09:54:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ce917824d5235454fc2c831363a556ed"} device-1 | {"level":"info","message":"GET /devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81? 200 38ms","method":"GET","requestID":"ce917824d5235454fc2c831363a556ed","responseTime":38,"status":200,"url":"/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:53.134323599Z"}]},"request_id":"24fafe16-8702-4257-84a6-0406aec8c5f7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.0108988} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"49dc7f10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Nn0.JN8SGgwD098BRpfpwPDgWTIJDSFIlAnSPM8oRR-1o2A","level":"info","message":"auth send jwt","requestID":"d7671fdb6bd190bf2b1041769868223a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d7671fdb6bd190bf2b1041769868223a","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:53.219233539Z"}]},"request_id":"8c73c4c4-d9d2-4adf-9caf-f980f116f7f2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.0139425} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"49dc7f10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81? 200 13ms","method":"GET","requestID":"49dc7f10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"49dca620-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d7671fdb6bd190bf2b1041769868223a"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:56Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"49dca620-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.20768,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:56Z"} device-1 | {"level":"info","message":"GET /devices/e40a1726-52ef-4c01-b787-5f9961c38596? 200 17ms","method":"GET","requestID":"49dca620-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":17,"status":200,"url":"/devices/e40a1726-52ef-4c01-b787-5f9961c38596?"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d7671fdb6bd190bf2b1041769868223a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240496,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Nn0.JN8SGgwD098BRpfpwPDgWTIJDSFIlAnSPM8oRR-1o2A"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"d7671fdb6bd190bf2b1041769868223a","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210"},"level":"info","message":"Building connection plan","requestID":"11e90532bfae54212348c0e9b626ae1a"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"251a937d-3693-4ea8-b524-0cbf6edf68a7"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"3c2d804e-8455-42d1-9eb8-9189f777efc9"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/file","uuid":"793aeb74-2e6f-40a9-85f3-e84fb25278d5"}]},"level":"info","message":"Built pairwise service configurations","requestID":"11e90532bfae54212348c0e9b626ae1a"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"49df8c50-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"49df8c50-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"POST /rooms 201 1ms","method":"POST","requestID":"49df8c50-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":1,"status":201,"url":"/rooms"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:53.219233539Z"}]},"request_id":"3b4b792d-e10d-488b-a238-d5d1788cecc0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.0229254} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d7671fdb6bd190bf2b1041769868223a","responseTime":2,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313?id=cac9d7a3-4c5e-4379-b356-32fb5f7a7cde","ws://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313?id=4300cee1-914e-4fd4-b8b1-916628f99c41"]},"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"11e90532bfae54212348c0e9b626ae1a"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"49e3d210-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d7671fdb6bd190bf2b1041769868223a"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:56Z"} device-1 | {"level":"info","message":"GET /devices/e40a1726-52ef-4c01-b787-5f9961c38596? 200 37ms","method":"GET","requestID":"d7671fdb6bd190bf2b1041769868223a","responseTime":37,"status":200,"url":"/devices/e40a1726-52ef-4c01-b787-5f9961c38596?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e40a1726-52ef-4c01-b787-5f9961c38596? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d7671fdb6bd190bf2b1041769868223a"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.922809,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"49e3d210-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240495,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5NX0.CsUJdNBo1b3bh7-MffMNejwf1OYGD8uWt6J9m1sZbIw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"49e3d210-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"14da2dca-5970-49cf-b64c-5b4abbebce8d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.0594122} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3bc1dc7c-c745-49c1-ba8f-b12ed949b012","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.0596151} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"49e3d210-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"49e3d210-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"49e3d210-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/d2f7d9d1-f114-4ac8-8bc4-e910557d0bba'","requestID":"49e3d210-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/d2f7d9d1-f114-4ac8-8bc4-e910557d0bba'","requestID":"49e3d210-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"49e3d210-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 56ms","method":"POST","requestID":"49e3d210-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":56,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"49e3d210-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/d2f7d9d1-f114-4ac8-8bc4-e910557d0bba' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d2f7d9d1-f114-4ac8-8bc4-e910557d0bba","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"49ed9610-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\"","requestID":"49ed9610-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"49ed9610-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"4323d8e60af9245366b5e97bb75daabf","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"49edbd20-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"4323d8e60af9245366b5e97bb75daabf","responseTime":0,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"cac9d7a3-4c5e-4379-b356-32fb5f7a7cde\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\"","requestID":"49edbd20-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"49edbd20-4c2a-11f0-b702-8b8a85c3ad9a"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/d2f7d9d1-f114-4ac8-8bc4-e910557d0bba"}}},"level":"info","message":"received a callback","requestID":"4323d8e60af9245366b5e97bb75daabf"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} device-1 | {"data":{"peerconnection":"d2f7d9d1-f114-4ac8-8bc4-e910557d0bba","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 38ms","method":"POST","requestID":"4323d8e60af9245366b5e97bb75daabf","responseTime":38,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch","requestID":"4323d8e60af9245366b5e97bb75daabf"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} device-1 | {"data":{"peerconnection":"d2f7d9d1-f114-4ac8-8bc4-e910557d0bba","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"11e90532bfae54212348c0e9b626ae1a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"49f5fa80-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1dfc35db-edae-4dc7-9983-4806671d6b1c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.1972187} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/d2f7d9d1-f114-4ac8-8bc4-e910557d0bba' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d2f7d9d1-f114-4ac8-8bc4-e910557d0bba","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.093152,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"49f5fa80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"49f5fa80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e44af449025b6a04f2154ecad324bbde","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/d2f7d9d1-f114-4ac8-8bc4-e910557d0bba"}}},"level":"info","message":"received a callback","requestID":"e44af449025b6a04f2154ecad324bbde"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e44af449025b6a04f2154ecad324bbde","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"49f5fa80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81/signaling 200 36ms","method":"POST","requestID":"49f5fa80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"49fbedf0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"49fc3c10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f792a577-2e07-4ac5-9f5d-1bdec2e19370","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.211782} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.265283,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"49fbedf0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"49fbedf0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd2f7d9d1-f114-4ac8-8bc4-e910557d0bba","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"63bb1dff-b22c-417c-9eee-6493946cb428","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.2126231} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":1.976414,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d2f7d9d1-f114-4ac8-8bc4-e910557d0bba","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"49fc3c10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/d2f7d9d1-f114-4ac8-8bc4-e910557d0bba","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"49fc3c10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"49fc3c10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/d2f7d9d1-f114-4ac8-8bc4-e910557d0bba 200 7ms","method":"GET","requestID":"49fc3c10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/peerconnections/d2f7d9d1-f114-4ac8-8bc4-e910557d0bba"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"49fbedf0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/e40a1726-52ef-4c01-b787-5f9961c38596/signaling 200 34ms","method":"POST","requestID":"49fbedf0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/e40a1726-52ef-4c01-b787-5f9961c38596/signaling"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 54ms","method":"POST","requestID":"e44af449025b6a04f2154ecad324bbde","responseTime":54,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.056","http_referrer":"","http_user_agent":"node-fetch","requestID":"e44af449025b6a04f2154ecad324bbde"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4a036800-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dc0ff1ec-0fd4-46d2-b948-556907c316f9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.2598617} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.307855,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4a036800-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4a036800-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4a036800-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81/signaling 200 7ms","method":"POST","requestID":"4a036800-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4a08e640-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5b4b473b-c5ed-409b-8661-593b3545ad8d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.2967987} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.22693,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4a08e640-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4a08e640-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4a08e640-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/e40a1726-52ef-4c01-b787-5f9961c38596/signaling 200 7ms","method":"POST","requestID":"4a08e640-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/devices/e40a1726-52ef-4c01-b787-5f9961c38596/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Nn0.JN8SGgwD098BRpfpwPDgWTIJDSFIlAnSPM8oRR-1o2A","level":"info","message":"auth send jwt","requestID":"8dc608986e447e7742091c3b06b92469"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8dc608986e447e7742091c3b06b92469","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210","requestID":"8dc608986e447e7742091c3b06b92469"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.798035,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8dc608986e447e7742091c3b06b92469","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240496,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Nn0.JN8SGgwD098BRpfpwPDgWTIJDSFIlAnSPM8oRR-1o2A"} authorization-1 | {"level":"info","message":"POST /authorize 200 24ms","method":"POST","requestID":"8dc608986e447e7742091c3b06b92469","responseTime":24,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210","requestID":"8dc608986e447e7742091c3b06b92469"} gateway-1 | {"time_local":"18/Jun/2025:09:54:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210 HTTP/1.1","status": "200","body_bytes_sent":"855","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8dc608986e447e7742091c3b06b92469"} experiment-1 | {"level":"info","message":"GET /experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210 200 32ms","method":"GET","requestID":"8dc608986e447e7742091c3b06b92469","responseTime":32,"status":200,"url":"/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Nn0.JN8SGgwD098BRpfpwPDgWTIJDSFIlAnSPM8oRR-1o2A","level":"info","message":"auth send jwt","requestID":"a226a11b0d4e428ad0d94cef62d30667"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a226a11b0d4e428ad0d94cef62d30667","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210","requestID":"a226a11b0d4e428ad0d94cef62d30667"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.736998,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a226a11b0d4e428ad0d94cef62d30667","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240496,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Nn0.JN8SGgwD098BRpfpwPDgWTIJDSFIlAnSPM8oRR-1o2A"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"a226a11b0d4e428ad0d94cef62d30667","responseTime":4,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:54:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/b76550c0-a23f-4c72-9249-cdd7e1244313?id=4300cee1-914e-4fd4-b8b1-916628f99c41 HTTP/1.1","status": "101","body_bytes_sent":"940747","request_time":"0.319","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"1002f8dc89d6ea1a9aed6c0755089fbb"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210"},"level":"info","message":"Attempting to finish experiment","requestID":"a226a11b0d4e428ad0d94cef62d30667"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"4a1c6e40-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:56Z"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/d2f7d9d1-f114-4ac8-8bc4-e910557d0bba' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/d2f7d9d1-f114-4ac8-8bc4-e910557d0bba' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d2f7d9d1-f114-4ac8-8bc4-e910557d0bba","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":2.343685,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d2f7d9d1-f114-4ac8-8bc4-e910557d0bba","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4a1c6e40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/d2f7d9d1-f114-4ac8-8bc4-e910557d0bba","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240496,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Nn0.JN8SGgwD098BRpfpwPDgWTIJDSFIlAnSPM8oRR-1o2A"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4a1c6e40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" from room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\", code: 1006, reason: "} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/d2f7d9d1-f114-4ac8-8bc4-e910557d0bba","device":"4c79bb1f-a5f4-4926-91d6-96815c5dec81","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"bfb558e7e3b6c70c977b596ba1187b77","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} gateway-1 | {"time_local":"18/Jun/2025:09:54:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/b76550c0-a23f-4c72-9249-cdd7e1244313?id=cac9d7a3-4c5e-4379-b356-32fb5f7a7cde HTTP/1.1","status": "101","body_bytes_sent":"2","request_time":"0.323","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"835914016d925213a2d00c4a269e9c6a"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"bfb558e7e3b6c70c977b596ba1187b77","responseTime":1,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"cac9d7a3-4c5e-4379-b356-32fb5f7a7cde\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"cac9d7a3-4c5e-4379-b356-32fb5f7a7cde\" from room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\", code: 1005, reason: "} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"4a3346f964924a6eaf8c8a8761ebec66","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"4a3346f964924a6eaf8c8a8761ebec66","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd2f7d9d1-f114-4ac8-8bc4-e910557d0bba': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd2f7d9d1-f114-4ac8-8bc4-e910557d0bba","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"0ab0078a-c37c-41e1-9b25-c4e889028b0c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.437846} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/d2f7d9d1-f114-4ac8-8bc4-e910557d0bba"}}},"level":"info","message":"received a callback","requestID":"bfb558e7e3b6c70c977b596ba1187b77"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e4f7d31d-ff84-4571-937d-ac05f159ea9f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.4389637} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/d2f7d9d1-f114-4ac8-8bc4-e910557d0bba"}}},"level":"info","message":"received a callback","requestID":"4a3346f964924a6eaf8c8a8761ebec66"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"4a1c6e40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"d2f7d9d1-f114-4ac8-8bc4-e910557d0bba","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"4a1c6e40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/d2f7d9d1-f114-4ac8-8bc4-e910557d0bba 204 42ms","method":"DELETE","requestID":"4a1c6e40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":42,"status":204,"url":"/peerconnections/d2f7d9d1-f114-4ac8-8bc4-e910557d0bba"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210"},"level":"info","message":"Successfully finished experiment","requestID":"a226a11b0d4e428ad0d94cef62d30667"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4a2520d0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c79bb1f-a5f4-4926-91d6-96815c5dec81","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f85b9b1a-f3b5-419d-8440-46218c1fb91f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.481134} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.456703,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4a2520d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4a2520d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4a2520d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81/signaling 200 8ms","method":"POST","requestID":"4a2520d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb4d82501-5e6c-4817-9939-32c9fcf8f210': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb4d82501-5e6c-4817-9939-32c9fcf8f210","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"0563e228-8557-4d65-a043-01fbfb6d48cb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.4875758} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4a26a770-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2ff74758-354f-4bfb-83c8-d185188b9a03","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.4876752} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"a226a11b0d4e428ad0d94cef62d30667","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe40a1726-52ef-4c01-b787-5f9961c38596","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"53d2637b-546d-4255-8426-8493f9bfc657","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.4925768} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.492358,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4a26a770-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4a26a770-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4a26a770-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/e40a1726-52ef-4c01-b787-5f9961c38596/signaling 200 9ms","method":"POST","requestID":"4a26a770-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/e40a1726-52ef-4c01-b787-5f9961c38596/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210","requestID":"a226a11b0d4e428ad0d94cef62d30667"} gateway-1 | {"time_local":"18/Jun/2025:09:54:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.190","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a226a11b0d4e428ad0d94cef62d30667"} experiment-1 | {"level":"info","message":"DELETE /experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210 204 187ms","method":"DELETE","requestID":"a226a11b0d4e428ad0d94cef62d30667","responseTime":187,"status":204,"url":"/experiments/b4d82501-5e6c-4817-9939-32c9fcf8f210"} gateway-1 | {"time_local":"18/Jun/2025:09:54:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1337","request_time":"2.308","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"7a4066c6485c0d9e2fe946ce30e03705"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 152ms","method":"POST","requestID":"bfb558e7e3b6c70c977b596ba1187b77","responseTime":152,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.156","http_referrer":"","http_user_agent":"node-fetch","requestID":"bfb558e7e3b6c70c977b596ba1187b77"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 152ms","method":"POST","requestID":"4a3346f964924a6eaf8c8a8761ebec66","responseTime":152,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.156","http_referrer":"","http_user_agent":"node-fetch","requestID":"4a3346f964924a6eaf8c8a8761ebec66"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Nn0.JN8SGgwD098BRpfpwPDgWTIJDSFIlAnSPM8oRR-1o2A","level":"info","message":"auth send jwt","requestID":"fa9fd93fc328d176cb20cf862c4fe63d"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"fa9fd93fc328d176cb20cf862c4fe63d","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"fa9fd93fc328d176cb20cf862c4fe63d"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":520,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":520,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":25.018955,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"fa9fd93fc328d176cb20cf862c4fe63d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240496,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Nn0.JN8SGgwD098BRpfpwPDgWTIJDSFIlAnSPM8oRR-1o2A"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"fa9fd93fc328d176cb20cf862c4fe63d","responseTime":30,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:54:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1338","request_time":"0.968","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"803f80f95ca4bab05488e1d32c436aed"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/e40a1726-52ef-4c01-b787-5f9961c38596' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d4cc24b6-015f-446f-a8e1-797932d536ee","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.673325} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"fa9fd93fc328d176cb20cf862c4fe63d","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/4c79bb1f-a5f4-4926-91d6-96815c5dec81' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dee04b94-1f27-4ebe-bcc5-9e1aa49b7fd4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.6783803} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"fa9fd93fc328d176cb20cf862c4fe63d","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"440913cd-396d-4f89-92a0-fcc686b587f7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.6887312} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0334a807-591d-4e77-b391-4814734a6a94","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.6889555} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"fa9fd93fc328d176cb20cf862c4fe63d","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:56.688703234Z"}]},"request_id":"62f31b24-4539-473a-a5f8-7ee10808752f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.6934893} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"fa9fd93fc328d176cb20cf862c4fe63d","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"fa9fd93fc328d176cb20cf862c4fe63d"} gateway-1 | {"time_local":"18/Jun/2025:09:54:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.106","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fa9fd93fc328d176cb20cf862c4fe63d"} device-1 | {"level":"info","message":"POST /devices? 201 99ms","method":"POST","requestID":"fa9fd93fc328d176cb20cf862c4fe63d","responseTime":99,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Nn0.JN8SGgwD098BRpfpwPDgWTIJDSFIlAnSPM8oRR-1o2A","level":"info","message":"auth send jwt","requestID":"3ca68731954cfe695d2f074e943be82b"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3ca68731954cfe695d2f074e943be82b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"3ca68731954cfe695d2f074e943be82b"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":521,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":521,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.620276,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:56Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3ca68731954cfe695d2f074e943be82b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240496,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5Nn0.JN8SGgwD098BRpfpwPDgWTIJDSFIlAnSPM8oRR-1o2A"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"3ca68731954cfe695d2f074e943be82b","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1a1a1cbb-d10d-499c-ae6a-d16e218b461a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.7410514} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3ca68731954cfe695d2f074e943be82b","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a7bbd679-340d-41fb-8def-612bce044a21","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.7698908} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"3ca68731954cfe695d2f074e943be82b","responseTime":28,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"a1ac9187-360a-4e71-a87d-cebd85688001","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.7798536} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"25b8a6ce-a332-458e-9772-cae96f92c9af","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.7800515} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"3ca68731954cfe695d2f074e943be82b","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:56.779814086Z"}]},"request_id":"4dd5dd88-a3e9-4615-889d-1dacff6dc65d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240496.7857618} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3ca68731954cfe695d2f074e943be82b","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"3ca68731954cfe695d2f074e943be82b"} gateway-1 | {"time_local":"18/Jun/2025:09:54:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.091","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3ca68731954cfe695d2f074e943be82b"} device-1 | {"level":"info","message":"POST /devices? 201 67ms","method":"POST","requestID":"3ca68731954cfe695d2f074e943be82b","responseTime":67,"status":201,"url":"/devices?"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\"","requestID":"47c5fb20-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"91a291b3-e250-42dd-a904-8b1288ead8b3\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\"","requestID":"47c62230-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5N30.IISLXTZ-JwmDqq_hug5pypQvLy-oJAdwyZ7aJ5qjNC4","level":"info","message":"auth send jwt","requestID":"355c04087a52c34c03d128e690325dd3"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"355c04087a52c34c03d128e690325dd3","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"355c04087a52c34c03d128e690325dd3"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":522,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:57Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":522,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.715359,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:57Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"355c04087a52c34c03d128e690325dd3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240497,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5N30.IISLXTZ-JwmDqq_hug5pypQvLy-oJAdwyZ7aJ5qjNC4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"355c04087a52c34c03d128e690325dd3","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:56.688703234Z"}]},"request_id":"d3ae2e2f-a21d-4b60-bedf-6c5f48a63490","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240497.7382798} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"355c04087a52c34c03d128e690325dd3","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0f499a3e-5149-4a67-9486-b2b228f2158c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240497.7425065} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"355c04087a52c34c03d128e690325dd3","responseTime":3,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"355c04087a52c34c03d128e690325dd3"} device-1 | {"level":"info","message":"PATCH /devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005 200 35ms","method":"PATCH","requestID":"355c04087a52c34c03d128e690325dd3","responseTime":35,"status":200,"url":"/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:56.688703234Z"}]},"request_id":"955e3186-5fe4-467d-a960-3cbf2a9daf93","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240497.761192} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"355c04087a52c34c03d128e690325dd3","responseTime":6,"status":200,"url":"/relations/query"} gateway-1 | {"time_local":"18/Jun/2025:09:54:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005 HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.074","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"355c04087a52c34c03d128e690325dd3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5N30.IISLXTZ-JwmDqq_hug5pypQvLy-oJAdwyZ7aJ5qjNC4","level":"info","message":"auth send jwt","requestID":"0945c9c0150e9af0688921513800d409"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0945c9c0150e9af0688921513800d409","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"0945c9c0150e9af0688921513800d409"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":523,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:57Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":523,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.724164,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:57Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0945c9c0150e9af0688921513800d409","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240497,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5N30.IISLXTZ-JwmDqq_hug5pypQvLy-oJAdwyZ7aJ5qjNC4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0945c9c0150e9af0688921513800d409","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"0945c9c0150e9af0688921513800d409"} gateway-1 | {"time_local":"18/Jun/2025:09:54:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.017","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"0945c9c0150e9af0688921513800d409"} device-1 | {"level":"info","message":"POST /devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005/websocket 200 13ms","method":"POST","requestID":"0945c9c0150e9af0688921513800d409","responseTime":13,"status":200,"url":"/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"3d0b3cc53e4f92803d3f53066769e27f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3d0b3cc53e4f92803d3f53066769e27f","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/91b7c847-4665-4006-8ea4-698afb708eeb/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3d0b3cc53e4f92803d3f53066769e27f"} device-1 | {"level":"info","message":"OPTIONS /devices/91b7c847-4665-4006-8ea4-698afb708eeb/websocket 200 1ms","method":"OPTIONS","requestID":"3d0b3cc53e4f92803d3f53066769e27f","responseTime":1,"status":200,"url":"/devices/91b7c847-4665-4006-8ea4-698afb708eeb/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw","level":"info","message":"auth send jwt","requestID":"ef6a7c6dae4a85fda29021674c041989"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ef6a7c6dae4a85fda29021674c041989","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"ef6a7c6dae4a85fda29021674c041989"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":524,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":524,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.264215,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ef6a7c6dae4a85fda29021674c041989","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240499,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"ef6a7c6dae4a85fda29021674c041989","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"ef6a7c6dae4a85fda29021674c041989"} gateway-1 | {"time_local":"18/Jun/2025:09:54:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/91b7c847-4665-4006-8ea4-698afb708eeb/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.042","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ef6a7c6dae4a85fda29021674c041989"} device-1 | {"level":"info","message":"POST /devices/91b7c847-4665-4006-8ea4-698afb708eeb/websocket 200 36ms","method":"POST","requestID":"ef6a7c6dae4a85fda29021674c041989","responseTime":36,"status":200,"url":"/devices/91b7c847-4665-4006-8ea4-698afb708eeb/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"323ef552f7e995d41c9b8c070750fc6c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"323ef552f7e995d41c9b8c070750fc6c","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:54:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/91b7c847-4665-4006-8ea4-698afb708eeb? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"323ef552f7e995d41c9b8c070750fc6c"} device-1 | {"level":"info","message":"OPTIONS /devices/91b7c847-4665-4006-8ea4-698afb708eeb? 200 1ms","method":"OPTIONS","requestID":"323ef552f7e995d41c9b8c070750fc6c","responseTime":1,"status":200,"url":"/devices/91b7c847-4665-4006-8ea4-698afb708eeb?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw","level":"info","message":"auth send jwt","requestID":"d8c28e5db4e959b7d1994deb6c93c229"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d8c28e5db4e959b7d1994deb6c93c229","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"d8c28e5db4e959b7d1994deb6c93c229"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":525,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":525,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.627437,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d8c28e5db4e959b7d1994deb6c93c229","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240499,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"d8c28e5db4e959b7d1994deb6c93c229","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:56.779814086Z"}]},"request_id":"ad8a90ed-31e1-49e6-8ed4-e70a8c55a47c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.252986} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d8c28e5db4e959b7d1994deb6c93c229","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d7310c03-b858-4b82-b728-7652a62c3f69","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.2573283} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"d8c28e5db4e959b7d1994deb6c93c229","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:56.779814086Z"}]},"request_id":"8b8e0be3-2ae5-4094-8604-048b843d4935","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.265839} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d8c28e5db4e959b7d1994deb6c93c229","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"d8c28e5db4e959b7d1994deb6c93c229"} device-1 | {"level":"info","message":"PATCH /devices/91b7c847-4665-4006-8ea4-698afb708eeb? 200 23ms","method":"PATCH","requestID":"d8c28e5db4e959b7d1994deb6c93c229","responseTime":23,"status":200,"url":"/devices/91b7c847-4665-4006-8ea4-698afb708eeb?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/91b7c847-4665-4006-8ea4-698afb708eeb? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.026","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d8c28e5db4e959b7d1994deb6c93c229"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw","level":"info","message":"auth send jwt","requestID":"d75c2c018820c339cf3c572a30f61a94"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d75c2c018820c339cf3c572a30f61a94","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d75c2c018820c339cf3c572a30f61a94"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":526,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":526,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.631019,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d75c2c018820c339cf3c572a30f61a94","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240499,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"d75c2c018820c339cf3c572a30f61a94","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:56.688703234Z"}]},"request_id":"6bf044d6-1be5-40fc-9318-af9570198fc1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.2834318} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d75c2c018820c339cf3c572a30f61a94","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d75c2c018820c339cf3c572a30f61a94"} device-1 | {"level":"info","message":"GET /devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005? 200 11ms","method":"GET","requestID":"d75c2c018820c339cf3c572a30f61a94","responseTime":11,"status":200,"url":"/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d75c2c018820c339cf3c572a30f61a94"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw","level":"info","message":"auth send jwt","requestID":"b3bd2a9c77e1ed97994bf2b2def68936"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b3bd2a9c77e1ed97994bf2b2def68936","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"b3bd2a9c77e1ed97994bf2b2def68936"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":527,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":527,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.583932,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b3bd2a9c77e1ed97994bf2b2def68936","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240499,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b3bd2a9c77e1ed97994bf2b2def68936","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:56.779814086Z"}]},"request_id":"9b1d73d0-c776-4f24-b7af-86e49044b031","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.2990415} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b3bd2a9c77e1ed97994bf2b2def68936","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"b3bd2a9c77e1ed97994bf2b2def68936"} device-1 | {"level":"info","message":"GET /devices/91b7c847-4665-4006-8ea4-698afb708eeb? 200 9ms","method":"GET","requestID":"b3bd2a9c77e1ed97994bf2b2def68936","responseTime":9,"status":200,"url":"/devices/91b7c847-4665-4006-8ea4-698afb708eeb?"} gateway-1 | {"time_local":"18/Jun/2025:09:54:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/91b7c847-4665-4006-8ea4-698afb708eeb? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b3bd2a9c77e1ed97994bf2b2def68936"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw","level":"info","message":"auth send jwt","requestID":"eabe9bc2673de180ef5993c6e12c6870"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"eabe9bc2673de180ef5993c6e12c6870","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"eabe9bc2673de180ef5993c6e12c6870"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":528,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":528,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.798509,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"eabe9bc2673de180ef5993c6e12c6870","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240499,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"eabe9bc2673de180ef5993c6e12c6870","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f666379-58f0-4545-aab0-1a6123b15087"},"level":"info","message":"Attempting to run experiment","requestID":"eabe9bc2673de180ef5993c6e12c6870"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f666379-58f0-4545-aab0-1a6123b15087"},"level":"info","message":"Attempting to book experiment","requestID":"eabe9bc2673de180ef5993c6e12c6870"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f666379-58f0-4545-aab0-1a6123b15087"},"level":"info","message":"Successfully booked experiment","requestID":"eabe9bc2673de180ef5993c6e12c6870"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4bdf2ce0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4bdf7b00-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":529,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":529,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.622938,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":530,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4bdf2ce0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240499,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4bdf2ce0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":530,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.539779,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4bdf7b00-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240499,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4bdf7b00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:56.688703234Z"}]},"request_id":"1deb32f9-aca1-41f0-926c-4a2fe2f2eff0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.3821366} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4bdf2ce0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:56.779814086Z"}]},"request_id":"4ae38f5d-9ceb-4194-b4e0-f87b190d453c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.3827727} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4bdf7b00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4bdf2ce0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005? 200 13ms","method":"GET","requestID":"4bdf2ce0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4bdf7b00-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/91b7c847-4665-4006-8ea4-698afb708eeb? 200 12ms","method":"GET","requestID":"4bdf7b00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/91b7c847-4665-4006-8ea4-698afb708eeb?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f666379-58f0-4545-aab0-1a6123b15087"},"level":"info","message":"Setting up experiment","requestID":"eabe9bc2673de180ef5993c6e12c6870"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"eabe9bc2673de180ef5993c6e12c6870"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f666379-58f0-4545-aab0-1a6123b15087"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"eabe9bc2673de180ef5993c6e12c6870"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f666379-58f0-4545-aab0-1a6123b15087"},"level":"info","message":"Successfully locked booking for experiment","requestID":"eabe9bc2673de180ef5993c6e12c6870"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f666379-58f0-4545-aab0-1a6123b15087"},"level":"info","message":"Successfully set up experiment","requestID":"eabe9bc2673de180ef5993c6e12c6870"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4be8a2c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4bebd710-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f666379-58f0-4545-aab0-1a6123b15087"},"level":"info","message":"Successfully running experiment","requestID":"eabe9bc2673de180ef5993c6e12c6870"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":531,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":531,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.887309,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":532,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4be8a2c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240499,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4be8a2c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":532,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.776138,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4bebd710-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240499,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4bebd710-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:56.688703234Z"}]},"request_id":"e89200d1-a781-4cdf-adfe-ba08b353c79c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.4659042} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4be8a2c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:56.779814086Z"}]},"request_id":"31da3c48-b097-4bca-9591-a9c32c5c56fe","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.4665263} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4bebd710-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4be8a2c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005? 200 35ms","method":"GET","requestID":"4be8a2c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4bebd710-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7f666379-58f0-4545-aab0-1a6123b15087#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7f666379-58f0-4545-aab0-1a6123b15087","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"d3543b97-1003-4529-ad12-3d66e12dfd17","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.4715166} device-1 | {"level":"info","message":"GET /devices/91b7c847-4665-4006-8ea4-698afb708eeb? 200 14ms","method":"GET","requestID":"4bebd710-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/91b7c847-4665-4006-8ea4-698afb708eeb?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"393adff8-d6b3-4b74-9918-e1dabbfc9901","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.471892} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"eabe9bc2673de180ef5993c6e12c6870","responseTime":13,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4bee6f20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":533,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/7f666379-58f0-4545-aab0-1a6123b15087","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"eabe9bc2673de180ef5993c6e12c6870"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d9d9dcba-7d2f-4214-853b-c7274b1eb5c2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.4793549} gateway-1 | {"time_local":"18/Jun/2025:09:54:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"782","request_time":"0.177","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"eabe9bc2673de180ef5993c6e12c6870"} experiment-1 | {"level":"info","message":"POST /experiments? 201 173ms","method":"POST","requestID":"eabe9bc2673de180ef5993c6e12c6870","responseTime":173,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":533,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.500896,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4bee6f20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"4bee6f20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw","level":"info","message":"auth send jwt","requestID":"963bc8d665855ad596458ad123f3e50e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4bee6f20-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"963bc8d665855ad596458ad123f3e50e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005/signaling 200 9ms","method":"POST","requestID":"4bee6f20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"963bc8d665855ad596458ad123f3e50e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4bf3ed60-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":534,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":534,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.667633,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":535,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"963bc8d665855ad596458ad123f3e50e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240499,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"963bc8d665855ad596458ad123f3e50e","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"104e076b-4d01-4cb1-beaa-98016038aa1f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.5139184} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":535,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.284208,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4bf3ed60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4bf3ed60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:56.688703234Z"}]},"request_id":"91afd675-d0e1-4035-8d9f-d91e6a4f00b7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.5176861} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4bf3ed60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/91b7c847-4665-4006-8ea4-698afb708eeb/signaling 200 8ms","method":"POST","requestID":"4bf3ed60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/91b7c847-4665-4006-8ea4-698afb708eeb/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"963bc8d665855ad596458ad123f3e50e","responseTime":3,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f666379-58f0-4545-aab0-1a6123b15087"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"eabe9bc2673de180ef5993c6e12c6870"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4bf57400-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4bf59b10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"963bc8d665855ad596458ad123f3e50e"} gateway-1 | {"time_local":"18/Jun/2025:09:54:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"963bc8d665855ad596458ad123f3e50e"} device-1 | {"level":"info","message":"GET /devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005? 200 39ms","method":"GET","requestID":"963bc8d665855ad596458ad123f3e50e","responseTime":39,"status":200,"url":"/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005?"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":536,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":536,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.734274,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":537,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4bf57400-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240499,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4bf57400-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":537,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.639453,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw","level":"info","message":"auth send jwt","requestID":"bcc67dac1c268424599a0823f5e32170"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bcc67dac1c268424599a0823f5e32170","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4bf59b10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240499,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4bf59b10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"bcc67dac1c268424599a0823f5e32170"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:56.688703234Z"}]},"request_id":"7210b0b3-9d62-4252-a21c-39a8a93338e2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.5536537} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"4bf57400-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:56.779814086Z"}]},"request_id":"820f2f49-a5a7-4da7-87a7-12167199e18b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.5546422} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"4bf59b10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4bf57400-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":538,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":538,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.831514,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} device-1 | {"level":"info","message":"GET /devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005? 200 38ms","method":"GET","requestID":"4bf57400-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":38,"status":200,"url":"/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005?"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"bcc67dac1c268424599a0823f5e32170","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240499,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"bcc67dac1c268424599a0823f5e32170","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4bf59b10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/91b7c847-4665-4006-8ea4-698afb708eeb? 200 40ms","method":"GET","requestID":"4bf59b10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":40,"status":200,"url":"/devices/91b7c847-4665-4006-8ea4-698afb708eeb?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:54:56.779814086Z"}]},"request_id":"43fa7a21-5a9b-4033-adbf-9edcffc2eb0c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.5623431} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f666379-58f0-4545-aab0-1a6123b15087"},"level":"info","message":"Building connection plan","requestID":"eabe9bc2673de180ef5993c6e12c6870"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"bcc67dac1c268424599a0823f5e32170","responseTime":3,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"c0de75fb-5ba0-4a44-9a91-ef872aedb2e5"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"0373919e-5f46-41f2-9862-6a993a60e64a"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/file","uuid":"133eaa16-cbc4-44b1-86f8-87023d342745"}]},"level":"info","message":"Built pairwise service configurations","requestID":"eabe9bc2673de180ef5993c6e12c6870"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"bcc67dac1c268424599a0823f5e32170"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"4bfc2ac0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"4bfc2ac0-4c2a-11f0-b702-8b8a85c3ad9a"} gateway-1 | {"time_local":"18/Jun/2025:09:54:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/91b7c847-4665-4006-8ea4-698afb708eeb? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bcc67dac1c268424599a0823f5e32170"} device-1 | {"level":"info","message":"GET /devices/91b7c847-4665-4006-8ea4-698afb708eeb? 200 12ms","method":"GET","requestID":"bcc67dac1c268424599a0823f5e32170","responseTime":12,"status":200,"url":"/devices/91b7c847-4665-4006-8ea4-698afb708eeb?"} forwarding-1 | {"level":"info","message":"POST /rooms 201 1ms","method":"POST","requestID":"4bfc2ac0-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":1,"status":201,"url":"/rooms"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f?id=6945f2b4-20aa-4c71-8115-6728398e1894","ws://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f?id=90e9c284-0f76-4ea5-a1ef-18ebc5b6459b"]},"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"eabe9bc2673de180ef5993c6e12c6870"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"4bfcc700-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":539,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":539,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.659275,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4bfcc700-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240499,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4bfcc700-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"76871e1d-30d5-42c4-ab1d-9f4442ca97ad","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.6024292} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7ed099bb-a24a-4e09-95c9-e9fef2cb8122","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.6026034} authorization-1 | {"level":"info","message":"POST /relations/update 200 29ms","method":"POST","requestID":"4bfcc700-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"4bfcc700-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"4bfcc700-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/4d1b3023-4149-45b7-a7a0-ee8a71ca0775'","requestID":"4bfcc700-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/4d1b3023-4149-45b7-a7a0-ee8a71ca0775'","requestID":"4bfcc700-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"4bfcc700-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 56ms","method":"POST","requestID":"4bfcc700-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":56,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"4bfcc700-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4d1b3023-4149-45b7-a7a0-ee8a71ca0775' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4d1b3023-4149-45b7-a7a0-ee8a71ca0775","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"4c0a5b90-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"90e9c284-0f76-4ea5-a1ef-18ebc5b6459b\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\"","requestID":"4c0a5b90-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"4c0a5b90-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"46c33c3d57d7d3e5ad65d8ba3f4674a0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"46c33c3d57d7d3e5ad65d8ba3f4674a0","responseTime":1,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"4c0a82a0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\"","requestID":"4c0a82a0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"4c0a82a0-4c2a-11f0-b702-8b8a85c3ad9a"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/4d1b3023-4149-45b7-a7a0-ee8a71ca0775"}}},"level":"info","message":"received a callback","requestID":"46c33c3d57d7d3e5ad65d8ba3f4674a0"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} device-1 | {"data":{"peerconnection":"4d1b3023-4149-45b7-a7a0-ee8a71ca0775","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} gateway-1 | {"time_local":"18/Jun/2025:09:54:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch","requestID":"46c33c3d57d7d3e5ad65d8ba3f4674a0"} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 43ms","method":"POST","requestID":"46c33c3d57d7d3e5ad65d8ba3f4674a0","responseTime":43,"status":200,"url":"/callbacks/experiment"} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} device-1 | {"data":{"peerconnection":"4d1b3023-4149-45b7-a7a0-ee8a71ca0775","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f666379-58f0-4545-aab0-1a6123b15087"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"eabe9bc2673de180ef5993c6e12c6870"} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4c133530-4c2a-11f0-a085-a5c7b3a0c4e5"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":540,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4d1b3023-4149-45b7-a7a0-ee8a71ca0775' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4d1b3023-4149-45b7-a7a0-ee8a71ca0775","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"574bbcbfc77a75f210e2bcd95c7a6f44","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"36514bd3-88c4-4949-b19f-6e1665f03b44","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.7202415} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"574bbcbfc77a75f210e2bcd95c7a6f44","responseTime":1,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/4d1b3023-4149-45b7-a7a0-ee8a71ca0775"}}},"level":"info","message":"received a callback","requestID":"574bbcbfc77a75f210e2bcd95c7a6f44"} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":540,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.214189,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4c133530-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"4c133530-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"4c157f20-4c2a-11f0-a085-a5c7b3a0c4e5"} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":541,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4d1b3023-4149-45b7-a7a0-ee8a71ca0775","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"85d0d413-099e-4ccf-b29e-9e42a455dfd2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.7348025} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":541,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.851026,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4c133530-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005/signaling 200 21ms","method":"POST","requestID":"4c133530-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":21,"status":200,"url":"/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4d1b3023-4149-45b7-a7a0-ee8a71ca0775","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4c157f20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/4d1b3023-4149-45b7-a7a0-ee8a71ca0775","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"4c157f20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4c16deb0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":542,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"4c157f20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e61cc6b7-056a-40f3-b0a8-9060542f22aa","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.7441196} device-1 | {"level":"info","message":"GET /peerconnections/4d1b3023-4149-45b7-a7a0-ee8a71ca0775 200 15ms","method":"GET","requestID":"4c157f20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":15,"status":200,"url":"/peerconnections/4d1b3023-4149-45b7-a7a0-ee8a71ca0775"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":542,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.991464,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4c16deb0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"4c16deb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4c16deb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/91b7c847-4665-4006-8ea4-698afb708eeb/signaling 200 12ms","method":"POST","requestID":"4c16deb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/91b7c847-4665-4006-8ea4-698afb708eeb/signaling"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 45ms","method":"POST","requestID":"574bbcbfc77a75f210e2bcd95c7a6f44","responseTime":45,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:54:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch","requestID":"574bbcbfc77a75f210e2bcd95c7a6f44"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4c1b4b80-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":543,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7336a0aa-037d-419d-b153-42172802e2c1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.7731142} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":543,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.200124,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4c1b4b80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"4c1b4b80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4c1b4b80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/91b7c847-4665-4006-8ea4-698afb708eeb/signaling 200 9ms","method":"POST","requestID":"4c1b4b80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/91b7c847-4665-4006-8ea4-698afb708eeb/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4c1d2040-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":544,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"45bf19d7-212d-41b3-89b3-a11d5221cdbe","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.7843022} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":544,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.517307,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4c1d2040-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4c1d2040-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4c1d2040-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005/signaling 200 8ms","method":"POST","requestID":"4c1d2040-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw","level":"info","message":"auth send jwt","requestID":"480c422eccb0e98e61dd30b70316d407"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"480c422eccb0e98e61dd30b70316d407","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/7f666379-58f0-4545-aab0-1a6123b15087","requestID":"480c422eccb0e98e61dd30b70316d407"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":545,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":545,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.674276,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7f666379-58f0-4545-aab0-1a6123b15087","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"480c422eccb0e98e61dd30b70316d407","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/7f666379-58f0-4545-aab0-1a6123b15087","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240499,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"480c422eccb0e98e61dd30b70316d407","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/7f666379-58f0-4545-aab0-1a6123b15087","requestID":"480c422eccb0e98e61dd30b70316d407"} experiment-1 | {"level":"info","message":"GET /experiments/7f666379-58f0-4545-aab0-1a6123b15087 200 13ms","method":"GET","requestID":"480c422eccb0e98e61dd30b70316d407","responseTime":13,"status":200,"url":"/experiments/7f666379-58f0-4545-aab0-1a6123b15087"} gateway-1 | {"time_local":"18/Jun/2025:09:54:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/7f666379-58f0-4545-aab0-1a6123b15087 HTTP/1.1","status": "200","body_bytes_sent":"855","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"480c422eccb0e98e61dd30b70316d407"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw","level":"info","message":"auth send jwt","requestID":"addcdeedd5fd52e76701404cd45a192e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"addcdeedd5fd52e76701404cd45a192e","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/7f666379-58f0-4545-aab0-1a6123b15087","requestID":"addcdeedd5fd52e76701404cd45a192e"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":546,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":546,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.705671,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7f666379-58f0-4545-aab0-1a6123b15087","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"addcdeedd5fd52e76701404cd45a192e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/7f666379-58f0-4545-aab0-1a6123b15087","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240499,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"addcdeedd5fd52e76701404cd45a192e","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f666379-58f0-4545-aab0-1a6123b15087"},"level":"info","message":"Attempting to finish experiment","requestID":"addcdeedd5fd52e76701404cd45a192e"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"4c362680-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":547,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":547,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.924851,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:54:59Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4d1b3023-4149-45b7-a7a0-ee8a71ca0775","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4c362680-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/4d1b3023-4149-45b7-a7a0-ee8a71ca0775","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240499,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDQ5OX0.rgldJ6E_TdlQBx-vg71LmJ7X2xdoeBD3051zuLmTqtw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4c362680-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:54:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f?id=90e9c284-0f76-4ea5-a1ef-18ebc5b6459b HTTP/1.1","status": "101","body_bytes_sent":"0","request_time":"0.299","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"3b73c229be3a7d40217ee661d4f40d75"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"90e9c284-0f76-4ea5-a1ef-18ebc5b6459b\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"90e9c284-0f76-4ea5-a1ef-18ebc5b6459b\" from room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\", code: 1006, reason: "} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/4d1b3023-4149-45b7-a7a0-ee8a71ca0775","device":"91b7c847-4665-4006-8ea4-698afb708eeb","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} gateway-1 | {"time_local":"18/Jun/2025:09:54:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f?id=6945f2b4-20aa-4c71-8115-6728398e1894 HTTP/1.1","status": "101","body_bytes_sent":"1203025","request_time":"0.299","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"336d836fa80c6ce9158a6d2bc77e8438"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4d1b3023-4149-45b7-a7a0-ee8a71ca0775' to 'http://localhost/callbacks/experiment'"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" from room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\", code: 1005, reason: "} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/4d1b3023-4149-45b7-a7a0-ee8a71ca0775' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4d1b3023-4149-45b7-a7a0-ee8a71ca0775","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4d1b3023-4149-45b7-a7a0-ee8a71ca0775': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4d1b3023-4149-45b7-a7a0-ee8a71ca0775","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"f10cd8c5-a2e3-4d41-ab6e-fb7b6a88a258","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.9599442} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"613dadb54f6a4f6492ce7dc0c5a726ea","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"79c73c74-b68e-46a9-82e6-f939e9a6b369","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240499.9606733} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"613dadb54f6a4f6492ce7dc0c5a726ea","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/4d1b3023-4149-45b7-a7a0-ee8a71ca0775"}}},"level":"info","message":"received a callback","requestID":"613dadb54f6a4f6492ce7dc0c5a726ea"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"36e5eb8d84ab32d786fc620aa3248dcd","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"36e5eb8d84ab32d786fc620aa3248dcd","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"4c362680-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/4d1b3023-4149-45b7-a7a0-ee8a71ca0775"}}},"level":"info","message":"received a callback","requestID":"36e5eb8d84ab32d786fc620aa3248dcd"} device-1 | {"data":{"peerconnection":"4d1b3023-4149-45b7-a7a0-ee8a71ca0775","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"4c362680-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/4d1b3023-4149-45b7-a7a0-ee8a71ca0775 204 52ms","method":"DELETE","requestID":"4c362680-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":52,"status":204,"url":"/peerconnections/4d1b3023-4149-45b7-a7a0-ee8a71ca0775"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f666379-58f0-4545-aab0-1a6123b15087"},"level":"info","message":"Successfully finished experiment","requestID":"addcdeedd5fd52e76701404cd45a192e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4c44f390-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":548,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:00Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F91b7c847-4665-4006-8ea4-698afb708eeb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f6515fd8-10d4-4aeb-a9fc-080d62912c33","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240500.046085} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":548,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.8814,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4c44f390-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"4c44f390-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4c44f390-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/91b7c847-4665-4006-8ea4-698afb708eeb/signaling 200 9ms","method":"POST","requestID":"4c44f390-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/91b7c847-4665-4006-8ea4-698afb708eeb/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4c46c850-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7f666379-58f0-4545-aab0-1a6123b15087': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7f666379-58f0-4545-aab0-1a6123b15087","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"7c6ac333-f0f0-4dba-b59c-8cb5029e1218","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240500.0557268} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7d9c138c-7f52-410c-b0dc-ff6fae9802bf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240500.0558991} authorization-1 | {"level":"info","message":"POST /relations/update 200 42ms","method":"POST","requestID":"addcdeedd5fd52e76701404cd45a192e","responseTime":42,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":549,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:00Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa666cc23-dbb2-47cf-9b7e-2be1d458c005","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"91e8eb1e-0715-4ea2-b62a-43aeabfe8f2c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240500.082509} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":549,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.233469,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4c46c850-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"4c46c850-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4c46c850-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005/signaling 200 33ms","method":"POST","requestID":"4c46c850-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/7f666379-58f0-4545-aab0-1a6123b15087","requestID":"addcdeedd5fd52e76701404cd45a192e"} gateway-1 | {"time_local":"18/Jun/2025:09:55:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/7f666379-58f0-4545-aab0-1a6123b15087 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.258","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"addcdeedd5fd52e76701404cd45a192e"} gateway-1 | {"time_local":"18/Jun/2025:09:55:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1337","request_time":"2.387","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"885bec178508975bcec9cecb2aba46d3"} experiment-1 | {"level":"info","message":"DELETE /experiments/7f666379-58f0-4545-aab0-1a6123b15087 204 256ms","method":"DELETE","requestID":"addcdeedd5fd52e76701404cd45a192e","responseTime":256,"status":204,"url":"/experiments/7f666379-58f0-4545-aab0-1a6123b15087"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 225ms","method":"POST","requestID":"613dadb54f6a4f6492ce7dc0c5a726ea","responseTime":225,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.227","http_referrer":"","http_user_agent":"node-fetch","requestID":"613dadb54f6a4f6492ce7dc0c5a726ea"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 223ms","method":"POST","requestID":"36e5eb8d84ab32d786fc620aa3248dcd","responseTime":223,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.228","http_referrer":"","http_user_agent":"node-fetch","requestID":"36e5eb8d84ab32d786fc620aa3248dcd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMH0.Hpj3JXtmS96iC2VTEDZ71NPQafzY0F7ZzfktqE66NOU","level":"info","message":"auth send jwt","requestID":"50716ec97082c122dcaa6a9da584c08b"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"50716ec97082c122dcaa6a9da584c08b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"50716ec97082c122dcaa6a9da584c08b"} gateway-1 | {"time_local":"18/Jun/2025:09:55:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1338","request_time":"0.978","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4773aa6be255b503a6592f2cda657ee0"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":550,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:00Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":550,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.059099,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"50716ec97082c122dcaa6a9da584c08b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240500,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMH0.Hpj3JXtmS96iC2VTEDZ71NPQafzY0F7ZzfktqE66NOU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"50716ec97082c122dcaa6a9da584c08b","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/a666cc23-dbb2-47cf-9b7e-2be1d458c005' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/91b7c847-4665-4006-8ea4-698afb708eeb' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a2f86f70-5a4b-4ac0-bf75-869283bbc576","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240500.2104833} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"50716ec97082c122dcaa6a9da584c08b","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1b267e94-cefa-4809-a163-e24a8948188b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240500.2163587} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"50716ec97082c122dcaa6a9da584c08b","responseTime":10,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"70548068-b6af-4374-9892-0aae4c395b6a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240500.2238436} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7aaf4598-175a-4722-b8d8-ae76e6a4bc0b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240500.223978} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"50716ec97082c122dcaa6a9da584c08b","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:00.223814997Z"}]},"request_id":"cb5b2b7d-78b8-4ee7-b985-ca84daaf7f42","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240500.228992} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"50716ec97082c122dcaa6a9da584c08b","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"50716ec97082c122dcaa6a9da584c08b"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"50716ec97082c122dcaa6a9da584c08b","responseTime":41,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"50716ec97082c122dcaa6a9da584c08b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMH0.Hpj3JXtmS96iC2VTEDZ71NPQafzY0F7ZzfktqE66NOU","level":"info","message":"auth send jwt","requestID":"09fcde5469c9e33e85d1bcab5e00a6eb"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"09fcde5469c9e33e85d1bcab5e00a6eb","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"09fcde5469c9e33e85d1bcab5e00a6eb"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":551,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:00Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":551,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.660816,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"09fcde5469c9e33e85d1bcab5e00a6eb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240500,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMH0.Hpj3JXtmS96iC2VTEDZ71NPQafzY0F7ZzfktqE66NOU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"09fcde5469c9e33e85d1bcab5e00a6eb","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4549a569-ac25-499e-a07b-edbe75369d63","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240500.276653} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"09fcde5469c9e33e85d1bcab5e00a6eb","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6fddfbcf-7906-492b-884a-8c71913d9551","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240500.280909} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"09fcde5469c9e33e85d1bcab5e00a6eb","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"6d9decd3-35a8-4c04-bb49-a1ebf53c1b9c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240500.2910812} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f73259d4-f2f9-4cff-ac8f-3c9533d354dd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240500.2911813} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"09fcde5469c9e33e85d1bcab5e00a6eb","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:00.291058662Z"}]},"request_id":"5d9e46dd-71ad-4630-afc1-fe8b78eca9e1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240500.294684} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"09fcde5469c9e33e85d1bcab5e00a6eb","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"09fcde5469c9e33e85d1bcab5e00a6eb"} gateway-1 | {"time_local":"18/Jun/2025:09:55:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.064","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"09fcde5469c9e33e85d1bcab5e00a6eb"} device-1 | {"level":"info","message":"POST /devices? 201 61ms","method":"POST","requestID":"09fcde5469c9e33e85d1bcab5e00a6eb","responseTime":61,"status":201,"url":"/devices?"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\"","requestID":"49ed9610-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"cac9d7a3-4c5e-4379-b356-32fb5f7a7cde\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\"","requestID":"49edbd20-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ","level":"info","message":"auth send jwt","requestID":"5e1e6f1399400dbade9d0ec14c1582ea"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5e1e6f1399400dbade9d0ec14c1582ea","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"5e1e6f1399400dbade9d0ec14c1582ea"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":552,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":552,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.729393,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5e1e6f1399400dbade9d0ec14c1582ea","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240501,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5e1e6f1399400dbade9d0ec14c1582ea","responseTime":3,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ","level":"info","message":"auth send jwt","requestID":"152565de5f2c4e9ac4478e012eb55941"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"152565de5f2c4e9ac4478e012eb55941","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"152565de5f2c4e9ac4478e012eb55941"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:00.223814997Z"}]},"request_id":"6b4b0b81-b3df-4290-a914-507b004ccf2e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.2040117} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5e1e6f1399400dbade9d0ec14c1582ea","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":553,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":553,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.669691,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"152565de5f2c4e9ac4478e012eb55941","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240501,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"152565de5f2c4e9ac4478e012eb55941","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4497a019-91ae-4f6a-805f-fad661a6f41a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.2331274} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"5e1e6f1399400dbade9d0ec14c1582ea","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:00.291058662Z"}]},"request_id":"6f0f0b26-d58f-48e7-93ca-db57ae2fae91","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.2363274} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"152565de5f2c4e9ac4478e012eb55941","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ae6b6d1d-2340-453f-9867-daac0734cb94","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.2401958} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"152565de5f2c4e9ac4478e012eb55941","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:00.223814997Z"}]},"request_id":"2a70f805-a104-46e0-97b6-ea6243441aa3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.282072} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"5e1e6f1399400dbade9d0ec14c1582ea","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"5e1e6f1399400dbade9d0ec14c1582ea"} device-1 | {"level":"info","message":"PATCH /devices/a9116bb5-8f1b-4a19-852d-b40f27101c50 200 89ms","method":"PATCH","requestID":"5e1e6f1399400dbade9d0ec14c1582ea","responseTime":89,"status":200,"url":"/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50"} gateway-1 | {"time_local":"18/Jun/2025:09:55:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/a9116bb5-8f1b-4a19-852d-b40f27101c50 HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.093","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"5e1e6f1399400dbade9d0ec14c1582ea"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ","level":"info","message":"auth send jwt","requestID":"497fc48e39c8b7978a0361b6ff6d65e6"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"497fc48e39c8b7978a0361b6ff6d65e6","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"497fc48e39c8b7978a0361b6ff6d65e6"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":554,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":554,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.507812,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"497fc48e39c8b7978a0361b6ff6d65e6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240501,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"497fc48e39c8b7978a0361b6ff6d65e6","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:00.291058662Z"}]},"request_id":"7a5f05fc-d095-4af0-92c7-f71a3dd9d710","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.2918606} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"152565de5f2c4e9ac4478e012eb55941","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"152565de5f2c4e9ac4478e012eb55941"} gateway-1 | {"time_local":"18/Jun/2025:09:55:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/480e0f27-f48e-487a-84c2-b749deebfed9 HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.097","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"152565de5f2c4e9ac4478e012eb55941"} device-1 | {"level":"info","message":"PATCH /devices/480e0f27-f48e-487a-84c2-b749deebfed9 200 93ms","method":"PATCH","requestID":"152565de5f2c4e9ac4478e012eb55941","responseTime":93,"status":200,"url":"/devices/480e0f27-f48e-487a-84c2-b749deebfed9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ","level":"info","message":"auth send jwt","requestID":"8ca39aa3c880ff0f4fc26274691844a3"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8ca39aa3c880ff0f4fc26274691844a3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"8ca39aa3c880ff0f4fc26274691844a3"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":555,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":555,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.647307,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8ca39aa3c880ff0f4fc26274691844a3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240501,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8ca39aa3c880ff0f4fc26274691844a3","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"497fc48e39c8b7978a0361b6ff6d65e6"} gateway-1 | {"time_local":"18/Jun/2025:09:55:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/a9116bb5-8f1b-4a19-852d-b40f27101c50/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.044","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"497fc48e39c8b7978a0361b6ff6d65e6"} device-1 | {"level":"info","message":"POST /devices/a9116bb5-8f1b-4a19-852d-b40f27101c50/websocket 200 41ms","method":"POST","requestID":"497fc48e39c8b7978a0361b6ff6d65e6","responseTime":41,"status":200,"url":"/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"8ca39aa3c880ff0f4fc26274691844a3"} gateway-1 | {"time_local":"18/Jun/2025:09:55:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/480e0f27-f48e-487a-84c2-b749deebfed9/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.044","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"8ca39aa3c880ff0f4fc26274691844a3"} device-1 | {"level":"info","message":"POST /devices/480e0f27-f48e-487a-84c2-b749deebfed9/websocket 200 40ms","method":"POST","requestID":"8ca39aa3c880ff0f4fc26274691844a3","responseTime":40,"status":200,"url":"/devices/480e0f27-f48e-487a-84c2-b749deebfed9/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ","level":"info","message":"auth send jwt","requestID":"ce2e4e7ed4ce989b574cf33496df4f17"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ce2e4e7ed4ce989b574cf33496df4f17","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ce2e4e7ed4ce989b574cf33496df4f17"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":556,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":556,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.733472,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ce2e4e7ed4ce989b574cf33496df4f17","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240501,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ce2e4e7ed4ce989b574cf33496df4f17","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:00.223814997Z"}]},"request_id":"d6c2032b-cee2-4724-8814-59ac0facf8d2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.3879051} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"ce2e4e7ed4ce989b574cf33496df4f17","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ce2e4e7ed4ce989b574cf33496df4f17"} device-1 | {"level":"info","message":"GET /devices/a9116bb5-8f1b-4a19-852d-b40f27101c50? 200 9ms","method":"GET","requestID":"ce2e4e7ed4ce989b574cf33496df4f17","responseTime":9,"status":200,"url":"/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a9116bb5-8f1b-4a19-852d-b40f27101c50? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ce2e4e7ed4ce989b574cf33496df4f17"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ","level":"info","message":"auth send jwt","requestID":"573a2732bb4c1408abf66bd24ea03245"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"573a2732bb4c1408abf66bd24ea03245","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"573a2732bb4c1408abf66bd24ea03245"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":557,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":557,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.672891,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"573a2732bb4c1408abf66bd24ea03245","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240501,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"573a2732bb4c1408abf66bd24ea03245","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:00.291058662Z"}]},"request_id":"90fd9963-3482-410d-bd14-1a11963aa04f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.4025445} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"573a2732bb4c1408abf66bd24ea03245","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"573a2732bb4c1408abf66bd24ea03245"} gateway-1 | {"time_local":"18/Jun/2025:09:55:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/480e0f27-f48e-487a-84c2-b749deebfed9? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"573a2732bb4c1408abf66bd24ea03245"} device-1 | {"level":"info","message":"GET /devices/480e0f27-f48e-487a-84c2-b749deebfed9? 200 34ms","method":"GET","requestID":"573a2732bb4c1408abf66bd24ea03245","responseTime":34,"status":200,"url":"/devices/480e0f27-f48e-487a-84c2-b749deebfed9?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ","level":"info","message":"auth send jwt","requestID":"356b84539b4f5753785f8934d9391029"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"356b84539b4f5753785f8934d9391029","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"356b84539b4f5753785f8934d9391029"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":558,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":558,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.722428,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"356b84539b4f5753785f8934d9391029","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240501,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"356b84539b4f5753785f8934d9391029","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2"},"level":"info","message":"Attempting to run experiment","requestID":"356b84539b4f5753785f8934d9391029"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2"},"level":"info","message":"Attempting to book experiment","requestID":"356b84539b4f5753785f8934d9391029"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2"},"level":"info","message":"Successfully booked experiment","requestID":"356b84539b4f5753785f8934d9391029"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4d225b40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4d228250-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":559,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":559,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.598136,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":560,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4d225b40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240501,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"4d225b40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":560,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":25.053308,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4d228250-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240501,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"4d228250-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:00.223814997Z"}]},"request_id":"791c93ee-0854-417f-bdc0-ee488ab50241","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.5248568} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4d225b40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:00.291058662Z"}]},"request_id":"6eccfa7d-a6fe-4166-9ed8-91027d3250f6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.5253482} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4d228250-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4d225b40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/a9116bb5-8f1b-4a19-852d-b40f27101c50? 200 37ms","method":"GET","requestID":"4d225b40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4d228250-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/480e0f27-f48e-487a-84c2-b749deebfed9? 200 37ms","method":"GET","requestID":"4d228250-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/480e0f27-f48e-487a-84c2-b749deebfed9?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2"},"level":"info","message":"Setting up experiment","requestID":"356b84539b4f5753785f8934d9391029"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"356b84539b4f5753785f8934d9391029"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"356b84539b4f5753785f8934d9391029"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2"},"level":"info","message":"Successfully locked booking for experiment","requestID":"356b84539b4f5753785f8934d9391029"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2"},"level":"info","message":"Successfully set up experiment","requestID":"356b84539b4f5753785f8934d9391029"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4d2fa1b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4d2fc8c0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2"},"level":"info","message":"Successfully running experiment","requestID":"356b84539b4f5753785f8934d9391029"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":561,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":561,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.680171,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":562,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4d2fa1b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240501,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4d2fa1b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":562,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.732141,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4d2fc8c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240501,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4d2fc8c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:00.223814997Z"}]},"request_id":"79039a17-9bb4-4005-adc6-f4b7d870f679","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.5884204} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4d2fa1b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:00.291058662Z"}]},"request_id":"079b667e-e452-4a03-8f9f-436d416fceda","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.589229} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4d2fc8c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"0ac3408f-1a8f-4220-87b4-d7fc711d76ed","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.6173294} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ce5a3ebe-04d1-4519-8300-252e692f0c4d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.6175032} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4d2fa1b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"356b84539b4f5753785f8934d9391029","responseTime":35,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"GET /devices/a9116bb5-8f1b-4a19-852d-b40f27101c50? 200 39ms","method":"GET","requestID":"4d2fa1b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":200,"url":"/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4d2fc8c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/480e0f27-f48e-487a-84c2-b749deebfed9? 200 39ms","method":"GET","requestID":"4d2fc8c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":200,"url":"/devices/480e0f27-f48e-487a-84c2-b749deebfed9?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4d363160-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":563,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ac9a6a24-005f-45d3-9dbd-e87819e6e06c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.6266296} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":563,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.332346,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"356b84539b4f5753785f8934d9391029"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4d363160-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} gateway-1 | {"time_local":"18/Jun/2025:09:55:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"786","request_time":"0.198","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"356b84539b4f5753785f8934d9391029"} experiment-1 | {"level":"info","message":"POST /experiments? 201 194ms","method":"POST","requestID":"356b84539b4f5753785f8934d9391029","responseTime":194,"status":201,"url":"/experiments?"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4d363160-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4d363160-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/a9116bb5-8f1b-4a19-852d-b40f27101c50/signaling 200 8ms","method":"POST","requestID":"4d363160-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ","level":"info","message":"auth send jwt","requestID":"51164da99d57266a7c336932f3898ec4"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"51164da99d57266a7c336932f3898ec4","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"51164da99d57266a7c336932f3898ec4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4d37df10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":564,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":564,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.604178,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":565,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"51164da99d57266a7c336932f3898ec4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240501,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"51164da99d57266a7c336932f3898ec4","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ce50b691-fccf-4004-bdee-d78eafca0ce9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.6373081} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":565,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.52215,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4d37df10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"4d37df10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:00.223814997Z"}]},"request_id":"3243618c-13f6-4341-aafe-8d4feff0bd08","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.639881} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"51164da99d57266a7c336932f3898ec4","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4d37df10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/480e0f27-f48e-487a-84c2-b749deebfed9/signaling 200 10ms","method":"POST","requestID":"4d37df10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/480e0f27-f48e-487a-84c2-b749deebfed9/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"51164da99d57266a7c336932f3898ec4"} gateway-1 | {"time_local":"18/Jun/2025:09:55:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a9116bb5-8f1b-4a19-852d-b40f27101c50? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"51164da99d57266a7c336932f3898ec4"} device-1 | {"level":"info","message":"GET /devices/a9116bb5-8f1b-4a19-852d-b40f27101c50? 200 36ms","method":"GET","requestID":"51164da99d57266a7c336932f3898ec4","responseTime":36,"status":200,"url":"/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"356b84539b4f5753785f8934d9391029"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4d3d8460-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4d3dab70-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ","level":"info","message":"auth send jwt","requestID":"05fbe09a7214ee0f27f1922241ac1631"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"05fbe09a7214ee0f27f1922241ac1631","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"05fbe09a7214ee0f27f1922241ac1631"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":566,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":566,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.792737,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":567,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4d3d8460-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240501,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4d3d8460-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":567,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.620789,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":568,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4d3dab70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240501,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4d3dab70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":568,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.655399,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"05fbe09a7214ee0f27f1922241ac1631","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240501,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"05fbe09a7214ee0f27f1922241ac1631","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:00.291058662Z"}]},"request_id":"282bed6b-45e7-403f-8b9a-ae6a68a9b427","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.680004} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:00.223814997Z"}]},"request_id":"86487e0d-8ebd-4003-863d-5c2a7bcb6f5b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.680657} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"4d3dab70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:00.291058662Z"}]},"request_id":"5df11aeb-8e2e-4d25-a36a-65c31af3dd00","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.6815135} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4d3d8460-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"05fbe09a7214ee0f27f1922241ac1631","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4d3d8460-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/a9116bb5-8f1b-4a19-852d-b40f27101c50? 200 16ms","method":"GET","requestID":"4d3d8460-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":16,"status":200,"url":"/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4d3dab70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/480e0f27-f48e-487a-84c2-b749deebfed9? 200 16ms","method":"GET","requestID":"4d3dab70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":16,"status":200,"url":"/devices/480e0f27-f48e-487a-84c2-b749deebfed9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"05fbe09a7214ee0f27f1922241ac1631"} gateway-1 | {"time_local":"18/Jun/2025:09:55:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/480e0f27-f48e-487a-84c2-b749deebfed9? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"05fbe09a7214ee0f27f1922241ac1631"} device-1 | {"level":"info","message":"GET /devices/480e0f27-f48e-487a-84c2-b749deebfed9? 200 15ms","method":"GET","requestID":"05fbe09a7214ee0f27f1922241ac1631","responseTime":15,"status":200,"url":"/devices/480e0f27-f48e-487a-84c2-b749deebfed9?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2"},"level":"info","message":"Building connection plan","requestID":"356b84539b4f5753785f8934d9391029"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"9ce7ba1c-b3d0-4218-82e6-10b4bda1e2a8"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"c2bfc025-f08a-4af3-9dbd-0f26808bd264"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/file","uuid":"e5dd4c4e-5f10-4f0c-a34d-435fc597fb31"}]},"level":"info","message":"Built pairwise service configurations","requestID":"356b84539b4f5753785f8934d9391029"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"4d44b050-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"4d44b050-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"POST /rooms 201 1ms","method":"POST","requestID":"4d44b050-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":1,"status":201,"url":"/rooms"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5?id=42a6a12e-1822-41d4-a550-e278c3cfb741","ws://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5?id=c4d65b4a-40d7-41c7-86e1-3adf345c39bf"]},"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"356b84539b4f5753785f8934d9391029"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"4d452580-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":569,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":569,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.707209,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4d452580-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240501,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMX0.QFZiCNGI8ifimewWhxcMxL_F5GyRGTx7xy3W8b5RjSQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4d452580-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"c6db014d-a56b-4f5a-9ec4-fd34a5148138","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.730538} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"72932cb9-4599-4624-89f2-3b231c9a4d4a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.7307198} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"4d452580-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"4d452580-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"4d452580-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/ee2e95eb-073f-4575-9679-20c739319094'","requestID":"4d452580-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ee2e95eb-073f-4575-9679-20c739319094'","requestID":"4d452580-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"4d452580-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 50ms","method":"POST","requestID":"4d452580-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":50,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"4d452580-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ee2e95eb-073f-4575-9679-20c739319094' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ee2e95eb-073f-4575-9679-20c739319094","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"4d4e7450-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"c4d65b4a-40d7-41c7-86e1-3adf345c39bf\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\"","requestID":"4d4e7450-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"4d4e7450-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"4d4e9b60-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\"","requestID":"4d4e9b60-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"4d4e9b60-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"67bc659cd3cfd58dc396ccac7a0d783e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"67bc659cd3cfd58dc396ccac7a0d783e","responseTime":1,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/ee2e95eb-073f-4575-9679-20c739319094"}}},"level":"info","message":"received a callback","requestID":"67bc659cd3cfd58dc396ccac7a0d783e"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} device-1 | {"data":{"peerconnection":"ee2e95eb-073f-4575-9679-20c739319094","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 12ms","method":"POST","requestID":"67bc659cd3cfd58dc396ccac7a0d783e","responseTime":12,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch","requestID":"67bc659cd3cfd58dc396ccac7a0d783e"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} device-1 | {"data":{"peerconnection":"ee2e95eb-073f-4575-9679-20c739319094","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"356b84539b4f5753785f8934d9391029"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4d563c80-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":570,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0944e7b4-5d35-467f-8493-96a5a2a8e40b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.8614597} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ee2e95eb-073f-4575-9679-20c739319094' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ee2e95eb-073f-4575-9679-20c739319094","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":570,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.261113,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4d563c80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"4d563c80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/authorize"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"375f8498340ffb86be2259d6808d6b73","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/ee2e95eb-073f-4575-9679-20c739319094"}}},"level":"info","message":"received a callback","requestID":"375f8498340ffb86be2259d6808d6b73"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4d563c80-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"375f8498340ffb86be2259d6808d6b73","responseTime":0,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/a9116bb5-8f1b-4a19-852d-b40f27101c50/signaling 200 36ms","method":"POST","requestID":"4d563c80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4d5c08e0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":571,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"4d5ca520-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e4f57d16-0a60-4bc6-a631-69d36789d71c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.8750012} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":571,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.758053,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4d5c08e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"4d5c08e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":572,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4d5c08e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/480e0f27-f48e-487a-84c2-b749deebfed9/signaling 200 10ms","method":"POST","requestID":"4d5c08e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/480e0f27-f48e-487a-84c2-b749deebfed9/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fee2e95eb-073f-4575-9679-20c739319094","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e8b1432f-04c2-4c71-81aa-a43062acf212","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.905172} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":572,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":26.804392,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"4d5ca520-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ee2e95eb-073f-4575-9679-20c739319094","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4d5ca520-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ee2e95eb-073f-4575-9679-20c739319094","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"4d5ca520-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"GET /peerconnections/ee2e95eb-073f-4575-9679-20c739319094 200 35ms","method":"GET","requestID":"4d5ca520-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/peerconnections/ee2e95eb-073f-4575-9679-20c739319094"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 61ms","method":"POST","requestID":"375f8498340ffb86be2259d6808d6b73","responseTime":61,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.064","http_referrer":"","http_user_agent":"node-fetch","requestID":"375f8498340ffb86be2259d6808d6b73"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4d688c00-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":573,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"34c4cf53-76e2-43c9-b5e5-0c7122bb7fef","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.9565744} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":573,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.258052,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4d688c00-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4d688c00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4d688c00-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/480e0f27-f48e-487a-84c2-b749deebfed9/signaling 200 8ms","method":"POST","requestID":"4d688c00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/480e0f27-f48e-487a-84c2-b749deebfed9/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4d6a39b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":574,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"22a801cf-fc2f-4eb0-abfa-5cf7e82e23d6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240501.9666855} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":574,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.689081,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4d6a39b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"4d6a39b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4d6a39b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/a9116bb5-8f1b-4a19-852d-b40f27101c50/signaling 200 8ms","method":"POST","requestID":"4d6a39b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMn0.OVUGSBEmrY-avMRbqPPNRKVGUXsedspjCehy0J4uMaM","level":"info","message":"auth send jwt","requestID":"0590a51f12c79203e4edaec92dddfdc0"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0590a51f12c79203e4edaec92dddfdc0","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2","requestID":"0590a51f12c79203e4edaec92dddfdc0"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":575,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:02Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":575,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.796749,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0590a51f12c79203e4edaec92dddfdc0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240502,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMn0.OVUGSBEmrY-avMRbqPPNRKVGUXsedspjCehy0J4uMaM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0590a51f12c79203e4edaec92dddfdc0","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2","requestID":"0590a51f12c79203e4edaec92dddfdc0"} experiment-1 | {"level":"info","message":"GET /experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2 200 8ms","method":"GET","requestID":"0590a51f12c79203e4edaec92dddfdc0","responseTime":8,"status":200,"url":"/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2"} gateway-1 | {"time_local":"18/Jun/2025:09:55:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2 HTTP/1.1","status": "200","body_bytes_sent":"859","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0590a51f12c79203e4edaec92dddfdc0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMn0.OVUGSBEmrY-avMRbqPPNRKVGUXsedspjCehy0J4uMaM","level":"info","message":"auth send jwt","requestID":"4f97ee4df72cc57fe4258c91efe44aed"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4f97ee4df72cc57fe4258c91efe44aed","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2","requestID":"4f97ee4df72cc57fe4258c91efe44aed"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":576,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:02Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":576,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.693064,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:02Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4f97ee4df72cc57fe4258c91efe44aed","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240502,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMn0.OVUGSBEmrY-avMRbqPPNRKVGUXsedspjCehy0J4uMaM"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"4f97ee4df72cc57fe4258c91efe44aed","responseTime":6,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2"},"level":"info","message":"Attempting to finish experiment","requestID":"4f97ee4df72cc57fe4258c91efe44aed"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"4d7ed320-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":577,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:02Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":577,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.827084,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:02Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ee2e95eb-073f-4575-9679-20c739319094","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4d7ed320-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/ee2e95eb-073f-4575-9679-20c739319094","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240502,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMn0.OVUGSBEmrY-avMRbqPPNRKVGUXsedspjCehy0J4uMaM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4d7ed320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:55:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/8aee777b-5ab4-4861-ac15-cae6628809e5?id=c4d65b4a-40d7-41c7-86e1-3adf345c39bf HTTP/1.1","status": "101","body_bytes_sent":"0","request_time":"0.328","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"fd15eaf90f0b757e0b33b92074c99046"} gateway-1 | {"time_local":"18/Jun/2025:09:55:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/8aee777b-5ab4-4861-ac15-cae6628809e5?id=42a6a12e-1822-41d4-a550-e278c3cfb741 HTTP/1.1","status": "101","body_bytes_sent":"1203023","request_time":"0.327","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"8705f57666eae6e773c8f4d7a90febe9"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"c4d65b4a-40d7-41c7-86e1-3adf345c39bf\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"c4d65b4a-40d7-41c7-86e1-3adf345c39bf\" from room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\", code: 1006, reason: "} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" from room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\", code: 1006, reason: "} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ee2e95eb-073f-4575-9679-20c739319094' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/ee2e95eb-073f-4575-9679-20c739319094' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ee2e95eb-073f-4575-9679-20c739319094","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fee2e95eb-073f-4575-9679-20c739319094': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fee2e95eb-073f-4575-9679-20c739319094","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"e5b54a85-75fe-45a6-9e15-dfb659386fa0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240502.1125684} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e2821fab58fd73928458b5de172c107f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e2821fab58fd73928458b5de172c107f","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6d776db8-90c7-40b6-b858-78f3f999abe8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240502.1129382} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b13207f3e5612145597c334a4a02bba4","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"4d7ed320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/ee2e95eb-073f-4575-9679-20c739319094"}}},"level":"info","message":"received a callback","requestID":"e2821fab58fd73928458b5de172c107f"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"b13207f3e5612145597c334a4a02bba4","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9"},{"config":{"services":[{"remoteServiceDescription":{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["websocket"]},"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/ee2e95eb-073f-4575-9679-20c739319094"}}},"level":"info","message":"received a callback","requestID":"b13207f3e5612145597c334a4a02bba4"} device-1 | {"data":{"peerconnection":"ee2e95eb-073f-4575-9679-20c739319094","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"4d7ed320-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/ee2e95eb-073f-4575-9679-20c739319094 204 40ms","method":"DELETE","requestID":"4d7ed320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":40,"status":204,"url":"/peerconnections/ee2e95eb-073f-4575-9679-20c739319094"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2"},"level":"info","message":"Successfully finished experiment","requestID":"4f97ee4df72cc57fe4258c91efe44aed"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4d873790-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":578,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:02Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F480e0f27-f48e-487a-84c2-b749deebfed9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"11eac15c-92b7-4dd2-b524-928aa35f0777","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240502.1573625} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":578,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.292291,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4d873790-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4d873790-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4d873790-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/480e0f27-f48e-487a-84c2-b749deebfed9/signaling 200 8ms","method":"POST","requestID":"4d873790-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/480e0f27-f48e-487a-84c2-b749deebfed9/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4d88e540-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"523b3342-a50e-4f88-8745-b67fb3da2653","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240502.16633} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":579,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:02Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"14b648e5-95f1-48d9-a463-52110eb9707f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240502.1666071} authorization-1 | {"level":"info","message":"POST /relations/update 200 22ms","method":"POST","requestID":"4f97ee4df72cc57fe4258c91efe44aed","responseTime":22,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9116bb5-8f1b-4a19-852d-b40f27101c50","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7c7a2a39-f78c-4be8-ab0b-8daf3285dfb5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240502.1682596} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":579,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.576748,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4d88e540-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","method":"POST","requestID":"4d88e540-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4d88e540-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/a9116bb5-8f1b-4a19-852d-b40f27101c50/signaling 200 14ms","method":"POST","requestID":"4d88e540-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2","requestID":"4f97ee4df72cc57fe4258c91efe44aed"} gateway-1 | {"time_local":"18/Jun/2025:09:55:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.174","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4f97ee4df72cc57fe4258c91efe44aed"} experiment-1 | {"level":"info","message":"DELETE /experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2 204 164ms","method":"DELETE","requestID":"4f97ee4df72cc57fe4258c91efe44aed","responseTime":164,"status":204,"url":"/experiments/9dd5ce75-a3b5-47c2-a3e3-9f51e21ebcb2"} gateway-1 | {"time_local":"18/Jun/2025:09:55:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1338","request_time":"0.906","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"c74a84ecb9b12326b4b500b24f19815e"} gateway-1 | {"time_local":"18/Jun/2025:09:55:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1337","request_time":"0.916","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"3d569cbc95df6a2d26c83976b94bfb5b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 135ms","method":"POST","requestID":"e2821fab58fd73928458b5de172c107f","responseTime":135,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.138","http_referrer":"","http_user_agent":"node-fetch","requestID":"e2821fab58fd73928458b5de172c107f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 135ms","method":"POST","requestID":"b13207f3e5612145597c334a4a02bba4","responseTime":135,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.139","http_referrer":"","http_user_agent":"node-fetch","requestID":"b13207f3e5612145597c334a4a02bba4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMn0.OVUGSBEmrY-avMRbqPPNRKVGUXsedspjCehy0J4uMaM","level":"info","message":"auth send jwt","requestID":"0b3f52b5f67d0b0c603392400a0d8943"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0b3f52b5f67d0b0c603392400a0d8943","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"0b3f52b5f67d0b0c603392400a0d8943"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/a9116bb5-8f1b-4a19-852d-b40f27101c50' closed"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":580,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:02Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":580,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.737966,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0b3f52b5f67d0b0c603392400a0d8943","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240502,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMn0.OVUGSBEmrY-avMRbqPPNRKVGUXsedspjCehy0J4uMaM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0b3f52b5f67d0b0c603392400a0d8943","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/480e0f27-f48e-487a-84c2-b749deebfed9' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1134d6a4-465f-442d-be19-88d0c2bd400f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240502.2961051} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0b3f52b5f67d0b0c603392400a0d8943","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5c3f701a-867d-4fc9-9856-3e18b97f1e4b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240502.3009226} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"0b3f52b5f67d0b0c603392400a0d8943","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"e811f162-282b-4e01-a9d2-9210d522f3de","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240502.3104775} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9ab48a57-41ce-4bb4-b6d0-7410294f4ee9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240502.3106709} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"0b3f52b5f67d0b0c603392400a0d8943","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:02.310455159Z"}]},"request_id":"cf9c6c68-d2ee-49c3-a013-995b254e0d4c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240502.3392289} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0b3f52b5f67d0b0c603392400a0d8943","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"0b3f52b5f67d0b0c603392400a0d8943"} gateway-1 | {"time_local":"18/Jun/2025:09:55:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.093","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0b3f52b5f67d0b0c603392400a0d8943"} device-1 | {"level":"info","message":"POST /devices? 201 87ms","method":"POST","requestID":"0b3f52b5f67d0b0c603392400a0d8943","responseTime":87,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMn0.OVUGSBEmrY-avMRbqPPNRKVGUXsedspjCehy0J4uMaM","level":"info","message":"auth send jwt","requestID":"d4f6ff4a58b7642a6bf2a3573d290a93"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d4f6ff4a58b7642a6bf2a3573d290a93","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"d4f6ff4a58b7642a6bf2a3573d290a93"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":581,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:02Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":581,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.842333,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d4f6ff4a58b7642a6bf2a3573d290a93","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240502,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwMn0.OVUGSBEmrY-avMRbqPPNRKVGUXsedspjCehy0J4uMaM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d4f6ff4a58b7642a6bf2a3573d290a93","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f8c59930-b04a-47ac-bf97-2114ea0d8f6b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240502.390129} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"d4f6ff4a58b7642a6bf2a3573d290a93","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e2d98792-7493-4a03-bd3e-68344601a377","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240502.3965914} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"d4f6ff4a58b7642a6bf2a3573d290a93","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"eedcbd2b-d3e9-4685-b7b2-3c966be44827","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240502.406455} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"46354cf0-1e0f-40a2-88cb-5ea4b0cbb4f8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240502.4067514} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"d4f6ff4a58b7642a6bf2a3573d290a93","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:02.406431936Z"}]},"request_id":"a4d4db4f-6fe0-47b6-9c15-4b48bfc3ba40","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240502.4350557} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d4f6ff4a58b7642a6bf2a3573d290a93","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"d4f6ff4a58b7642a6bf2a3573d290a93"} device-1 | {"level":"info","message":"POST /devices? 201 91ms","method":"POST","requestID":"d4f6ff4a58b7642a6bf2a3573d290a93","responseTime":91,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.095","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d4f6ff4a58b7642a6bf2a3573d290a93"} forwarding-1 | {"level":"info","message":"Participant \"06481ab8-24eb-4f5e-a706-2f66689386a0\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\" did not answer hearbeat check, closing connection","requestID":"47c5fb20-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"91a291b3-e250-42dd-a904-8b1288ead8b3\" in room \"http://localhost/rooms/8d098d6f-291a-479b-af6b-9a7029aff2cd\" did not answer hearbeat check, closing connection","requestID":"47c62230-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"90e9c284-0f76-4ea5-a1ef-18ebc5b6459b\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\"","requestID":"4c0a5b90-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\"","requestID":"4c0a82a0-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"80d49200023c392b14e472a61c6a48ec","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"80d49200023c392b14e472a61c6a48ec","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"18fb511d30eb95f3536a5c68078f0d64","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} gateway-1 | {"time_local":"18/Jun/2025:09:55:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"80d49200023c392b14e472a61c6a48ec"} device-1 | {"level":"info","message":"OPTIONS /devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9/websocket 200 1ms","method":"OPTIONS","requestID":"80d49200023c392b14e472a61c6a48ec","responseTime":1,"status":200,"url":"/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9/websocket"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"18fb511d30eb95f3536a5c68078f0d64","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/65b6fedc-3c31-4d48-94a2-32414e29a692/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.005","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"18fb511d30eb95f3536a5c68078f0d64"} device-1 | {"level":"info","message":"OPTIONS /devices/65b6fedc-3c31-4d48-94a2-32414e29a692/websocket 200 1ms","method":"OPTIONS","requestID":"18fb511d30eb95f3536a5c68078f0d64","responseTime":1,"status":200,"url":"/devices/65b6fedc-3c31-4d48-94a2-32414e29a692/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNH0.udGyhtJX5_TrzyYDMHUnpwIIYZ9MuEdOkJJKbf-3eYs","level":"info","message":"auth send jwt","requestID":"e6116a012e4d9b487a9d5879e9f26d11"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e6116a012e4d9b487a9d5879e9f26d11","responseTime":3,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNH0.udGyhtJX5_TrzyYDMHUnpwIIYZ9MuEdOkJJKbf-3eYs","level":"info","message":"auth send jwt","requestID":"7c0fdfd9aebbd645a6e41ba0f1747cd0"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"e6116a012e4d9b487a9d5879e9f26d11"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7c0fdfd9aebbd645a6e41ba0f1747cd0","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"7c0fdfd9aebbd645a6e41ba0f1747cd0"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":582,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:04Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":582,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.963196,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:04Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":583,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:04Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e6116a012e4d9b487a9d5879e9f26d11","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240504,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNH0.udGyhtJX5_TrzyYDMHUnpwIIYZ9MuEdOkJJKbf-3eYs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"e6116a012e4d9b487a9d5879e9f26d11","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":583,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.643801,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:04Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7c0fdfd9aebbd645a6e41ba0f1747cd0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240504,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNH0.udGyhtJX5_TrzyYDMHUnpwIIYZ9MuEdOkJJKbf-3eYs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7c0fdfd9aebbd645a6e41ba0f1747cd0","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"7c0fdfd9aebbd645a6e41ba0f1747cd0"} device-1 | {"level":"info","message":"POST /devices/65b6fedc-3c31-4d48-94a2-32414e29a692/websocket 200 15ms","method":"POST","requestID":"7c0fdfd9aebbd645a6e41ba0f1747cd0","responseTime":15,"status":200,"url":"/devices/65b6fedc-3c31-4d48-94a2-32414e29a692/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:55:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/65b6fedc-3c31-4d48-94a2-32414e29a692/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.021","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7c0fdfd9aebbd645a6e41ba0f1747cd0"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"e6116a012e4d9b487a9d5879e9f26d11"} device-1 | {"level":"info","message":"POST /devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9/websocket 200 33ms","method":"POST","requestID":"e6116a012e4d9b487a9d5879e9f26d11","responseTime":33,"status":200,"url":"/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:55:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.037","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e6116a012e4d9b487a9d5879e9f26d11"} device-1 | {"level":"info","message":"device 'http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"942d1d407dde284f1bf5e21d2ef96773","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"942d1d407dde284f1bf5e21d2ef96773","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/65b6fedc-3c31-4d48-94a2-32414e29a692? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"942d1d407dde284f1bf5e21d2ef96773"} device-1 | {"level":"info","message":"OPTIONS /devices/65b6fedc-3c31-4d48-94a2-32414e29a692? 200 1ms","method":"OPTIONS","requestID":"942d1d407dde284f1bf5e21d2ef96773","responseTime":1,"status":200,"url":"/devices/65b6fedc-3c31-4d48-94a2-32414e29a692?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNH0.udGyhtJX5_TrzyYDMHUnpwIIYZ9MuEdOkJJKbf-3eYs","level":"info","message":"auth send jwt","requestID":"4b9ed0aeeff88c8272358365bc797ad2"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4b9ed0aeeff88c8272358365bc797ad2","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"4b9ed0aeeff88c8272358365bc797ad2"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":584,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:04Z"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0746db76d198624388866930167c72b0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0746db76d198624388866930167c72b0","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":584,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.929575,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:04Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4b9ed0aeeff88c8272358365bc797ad2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240504,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNH0.udGyhtJX5_TrzyYDMHUnpwIIYZ9MuEdOkJJKbf-3eYs"} gateway-1 | {"time_local":"18/Jun/2025:09:55:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0746db76d198624388866930167c72b0"} device-1 | {"level":"info","message":"OPTIONS /devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9? 200 1ms","method":"OPTIONS","requestID":"0746db76d198624388866930167c72b0","responseTime":1,"status":200,"url":"/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9?"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4b9ed0aeeff88c8272358365bc797ad2","responseTime":3,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNH0.udGyhtJX5_TrzyYDMHUnpwIIYZ9MuEdOkJJKbf-3eYs","level":"info","message":"auth send jwt","requestID":"5f977f602844c7fe59a4b57565565141"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5f977f602844c7fe59a4b57565565141","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:02.310455159Z"}]},"request_id":"dabc46ec-6dcd-4d69-a83a-9040e3a474c8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240504.8908932} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4b9ed0aeeff88c8272358365bc797ad2","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"5f977f602844c7fe59a4b57565565141"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":585,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:04Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":585,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.680303,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:04Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5f977f602844c7fe59a4b57565565141","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240504,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNH0.udGyhtJX5_TrzyYDMHUnpwIIYZ9MuEdOkJJKbf-3eYs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5f977f602844c7fe59a4b57565565141","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"750a71b0-4113-4eba-a55d-5fe30baad592","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240504.8958035} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"4b9ed0aeeff88c8272358365bc797ad2","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:02.310455159Z"}]},"request_id":"3b305b78-4747-487f-be0c-6ec5a5462313","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240504.9038608} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"4b9ed0aeeff88c8272358365bc797ad2"} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"4b9ed0aeeff88c8272358365bc797ad2","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:02.406431936Z"}]},"request_id":"7caddca8-17ac-4eb5-ab50-99c5b9cbb686","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240504.9046154} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"5f977f602844c7fe59a4b57565565141","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"PATCH /devices/65b6fedc-3c31-4d48-94a2-32414e29a692? 200 49ms","method":"PATCH","requestID":"4b9ed0aeeff88c8272358365bc797ad2","responseTime":49,"status":200,"url":"/devices/65b6fedc-3c31-4d48-94a2-32414e29a692?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/65b6fedc-3c31-4d48-94a2-32414e29a692? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.052","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4b9ed0aeeff88c8272358365bc797ad2"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4315b04e-8dd3-4451-9b44-cb6798072df5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240504.9343514} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"5f977f602844c7fe59a4b57565565141","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:02.406431936Z"}]},"request_id":"e247d894-c208-4563-94c5-e9274a261e9a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240504.9472597} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5f977f602844c7fe59a4b57565565141","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"5f977f602844c7fe59a4b57565565141"} gateway-1 | {"time_local":"18/Jun/2025:09:55:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.062","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"5f977f602844c7fe59a4b57565565141"} device-1 | {"level":"info","message":"PATCH /devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9? 200 58ms","method":"PATCH","requestID":"5f977f602844c7fe59a4b57565565141","responseTime":58,"status":200,"url":"/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNH0.udGyhtJX5_TrzyYDMHUnpwIIYZ9MuEdOkJJKbf-3eYs","level":"info","message":"auth send jwt","requestID":"902a655e07d539dee14858486a611ee7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"902a655e07d539dee14858486a611ee7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"902a655e07d539dee14858486a611ee7"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":586,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:04Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":586,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.931386,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"902a655e07d539dee14858486a611ee7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240504,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNH0.udGyhtJX5_TrzyYDMHUnpwIIYZ9MuEdOkJJKbf-3eYs"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"902a655e07d539dee14858486a611ee7","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:02.310455159Z"}]},"request_id":"1f5cb087-a29e-470b-afd1-23e33f107599","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240504.9857965} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"902a655e07d539dee14858486a611ee7","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"902a655e07d539dee14858486a611ee7"} device-1 | {"level":"info","message":"GET /devices/65b6fedc-3c31-4d48-94a2-32414e29a692? 200 34ms","method":"GET","requestID":"902a655e07d539dee14858486a611ee7","responseTime":34,"status":200,"url":"/devices/65b6fedc-3c31-4d48-94a2-32414e29a692?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/65b6fedc-3c31-4d48-94a2-32414e29a692? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"902a655e07d539dee14858486a611ee7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNH0.udGyhtJX5_TrzyYDMHUnpwIIYZ9MuEdOkJJKbf-3eYs","level":"info","message":"auth send jwt","requestID":"3686dc2acd76afea9c70ab2bf551734b"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3686dc2acd76afea9c70ab2bf551734b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3686dc2acd76afea9c70ab2bf551734b"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":587,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:04Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":587,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.76091,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3686dc2acd76afea9c70ab2bf551734b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240504,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNH0.udGyhtJX5_TrzyYDMHUnpwIIYZ9MuEdOkJJKbf-3eYs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3686dc2acd76afea9c70ab2bf551734b","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:02.406431936Z"}]},"request_id":"6a2bdd7c-59f0-4f23-86e0-757e24cc0c99","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.0262384} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"3686dc2acd76afea9c70ab2bf551734b","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3686dc2acd76afea9c70ab2bf551734b"} device-1 | {"level":"info","message":"GET /devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9? 200 37ms","method":"GET","requestID":"3686dc2acd76afea9c70ab2bf551734b","responseTime":37,"status":200,"url":"/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3686dc2acd76afea9c70ab2bf551734b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4","level":"info","message":"auth send jwt","requestID":"1947513b2d029c402641694178c13969"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1947513b2d029c402641694178c13969","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"1947513b2d029c402641694178c13969"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":588,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":588,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.685313,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"1947513b2d029c402641694178c13969","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240505,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"1947513b2d029c402641694178c13969","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec"},"level":"info","message":"Attempting to run experiment","requestID":"1947513b2d029c402641694178c13969"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec"},"level":"info","message":"Attempting to book experiment","requestID":"1947513b2d029c402641694178c13969"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec"},"level":"info","message":"Successfully booked experiment","requestID":"1947513b2d029c402641694178c13969"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4f47ac40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4f47ac41-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":589,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":590,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":589,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.872433,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4f47ac40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240505,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4f47ac40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":590,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.507097,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4f47ac41-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240505,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"4f47ac41-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:02.310455159Z"}]},"request_id":"292fe6e0-b885-480e-bd17-d4b82b3acbf6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.123074} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4f47ac40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:02.406431936Z"}]},"request_id":"823cecf3-d39d-4501-a586-cb7353d95750","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.123753} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4f47ac41-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4f47ac40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/65b6fedc-3c31-4d48-94a2-32414e29a692? 200 35ms","method":"GET","requestID":"4f47ac40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/65b6fedc-3c31-4d48-94a2-32414e29a692?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4f47ac41-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9? 200 35ms","method":"GET","requestID":"4f47ac41-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec"},"level":"info","message":"Setting up experiment","requestID":"1947513b2d029c402641694178c13969"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"1947513b2d029c402641694178c13969"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"1947513b2d029c402641694178c13969"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec"},"level":"info","message":"Successfully locked booking for experiment","requestID":"1947513b2d029c402641694178c13969"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec"},"level":"info","message":"Successfully set up experiment","requestID":"1947513b2d029c402641694178c13969"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4f53ba30-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4f53e140-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec"},"level":"info","message":"Successfully running experiment","requestID":"1947513b2d029c402641694178c13969"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":591,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":591,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.756676,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":592,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4f53ba30-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240505,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4f53ba30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":592,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.725819,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4f53e140-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240505,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4f53e140-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:02.310455159Z"}]},"request_id":"2c9c8828-e030-4e8b-92e8-6e2d994aa513","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.1803143} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4f53ba30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:02.406431936Z"}]},"request_id":"d68f57b5-6772-4e9b-b7b3-7615e73fe326","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.180917} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4f53e140-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4f53ba30-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/65b6fedc-3c31-4d48-94a2-32414e29a692? 200 13ms","method":"GET","requestID":"4f53ba30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/65b6fedc-3c31-4d48-94a2-32414e29a692?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4f53e140-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9? 200 13ms","method":"GET","requestID":"4f53e140-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4f562b30-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc091bf32-ea1e-4d62-b9fa-b1c360eaddec#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc091bf32-ea1e-4d62-b9fa-b1c360eaddec","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"151ba3d0-2cb4-4e64-a84a-1a2516ce9b9a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.1906252} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"18c77574-2c2c-4ecf-8233-88e9c5b8be5c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.190856} authorization-1 | {"level":"info","message":"POST /relations/update 200 42ms","method":"POST","requestID":"1947513b2d029c402641694178c13969","responseTime":42,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":593,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b5b9e131-b946-48a7-a837-c211f2d686cb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.2175386} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":593,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.747195,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4f562b30-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"4f562b30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4f562b30-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/65b6fedc-3c31-4d48-94a2-32414e29a692/signaling 200 35ms","method":"POST","requestID":"4f562b30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/65b6fedc-3c31-4d48-94a2-32414e29a692/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4f5bf790-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"1947513b2d029c402641694178c13969"} experiment-1 | {"level":"info","message":"POST /experiments? 201 190ms","method":"POST","requestID":"1947513b2d029c402641694178c13969","responseTime":190,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1288","request_time":"0.193","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1947513b2d029c402641694178c13969"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":594,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4668cfee-77d9-49ac-9acb-2b963ceece9f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.2295592} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":594,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.763028,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4","level":"info","message":"auth send jwt","requestID":"a2ea48efc9c6c9b974ae9ac4e4b0e10a"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a2ea48efc9c6c9b974ae9ac4e4b0e10a","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4f5bf790-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a2ea48efc9c6c9b974ae9ac4e4b0e10a"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4f5bf790-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":595,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":595,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.911564,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4f5bf790-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9/signaling 200 10ms","method":"POST","requestID":"4f5bf790-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a2ea48efc9c6c9b974ae9ac4e4b0e10a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240505,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a2ea48efc9c6c9b974ae9ac4e4b0e10a","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"1947513b2d029c402641694178c13969"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4f5dcc50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4f5df360-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:02.310455159Z"}]},"request_id":"e2ea1210-a931-41ad-9b80-c1e43893d768","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.2391038} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"a2ea48efc9c6c9b974ae9ac4e4b0e10a","responseTime":28,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":596,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":596,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":25.517104,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":597,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"a2ea48efc9c6c9b974ae9ac4e4b0e10a"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4f5dcc50-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240505,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4"} gateway-1 | {"time_local":"18/Jun/2025:09:55:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/65b6fedc-3c31-4d48-94a2-32414e29a692? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a2ea48efc9c6c9b974ae9ac4e4b0e10a"} device-1 | {"level":"info","message":"GET /devices/65b6fedc-3c31-4d48-94a2-32414e29a692? 200 36ms","method":"GET","requestID":"a2ea48efc9c6c9b974ae9ac4e4b0e10a","responseTime":36,"status":200,"url":"/devices/65b6fedc-3c31-4d48-94a2-32414e29a692?"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"4f5dcc50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":597,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.671782,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4f5df360-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240505,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4f5df360-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:02.310455159Z"}]},"request_id":"9c14d235-a64d-42c7-a4dd-128874489dd2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.2704134} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4","level":"info","message":"auth send jwt","requestID":"d313062078b357050dee6f525c47d418"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d313062078b357050dee6f525c47d418","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4f5dcc50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:02.406431936Z"}]},"request_id":"938fcc69-b018-418a-bfc2-72cbbd28af29","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.2716677} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4f5df360-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d313062078b357050dee6f525c47d418"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":598,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":598,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.737093,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4f5dcc50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/65b6fedc-3c31-4d48-94a2-32414e29a692? 200 39ms","method":"GET","requestID":"4f5dcc50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":200,"url":"/devices/65b6fedc-3c31-4d48-94a2-32414e29a692?"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d313062078b357050dee6f525c47d418","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240505,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4f5df360-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d313062078b357050dee6f525c47d418","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"GET /devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9? 200 39ms","method":"GET","requestID":"4f5df360-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":200,"url":"/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec"},"level":"info","message":"Building connection plan","requestID":"1947513b2d029c402641694178c13969"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"dcc728dc-08e7-4d0f-93ab-2677bb15f7ee"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"c4dd2e2b-cc4e-49fa-81e0-c3e2e753c12a"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"68a93c40-c88f-4bf1-93f5-049720b0a252"}]},"level":"info","message":"Built pairwise service configurations","requestID":"1947513b2d029c402641694178c13969"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"1947513b2d029c402641694178c13969"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:02.406431936Z"}]},"request_id":"fac0a62f-07b8-43d3-a8dc-39e52b454a3f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.2810218} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"4f648310-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d313062078b357050dee6f525c47d418","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":599,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d313062078b357050dee6f525c47d418"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":599,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.874536,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} device-1 | {"level":"info","message":"GET /devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9? 200 11ms","method":"GET","requestID":"d313062078b357050dee6f525c47d418","responseTime":11,"status":200,"url":"/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d313062078b357050dee6f525c47d418"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4f648310-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240505,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4f648310-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"44a7a8be-9809-4b0d-847a-9e4fd652dd48","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.315029} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c04ed377-a0e2-4165-8c63-5f102749b653","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.3152623} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"4f648310-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"4f648310-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"4f648310-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/64259472-e234-43fe-8940-0ed2ee515220'","requestID":"4f648310-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/64259472-e234-43fe-8940-0ed2ee515220'","requestID":"4f648310-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"4f648310-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 83ms","method":"POST","requestID":"4f648310-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":83,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"4f648310-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"1947513b2d029c402641694178c13969"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4f7524e0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":600,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a1cb1844-2fed-4355-a34d-874585674760","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.394866} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":600,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.424602,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4f7524e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4f7524e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4f7524e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/65b6fedc-3c31-4d48-94a2-32414e29a692/signaling 200 8ms","method":"POST","requestID":"4f7524e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/65b6fedc-3c31-4d48-94a2-32414e29a692/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4f76d290-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":601,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5146a81b-871b-45c0-a32a-5df629efc816","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.4063056} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":601,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.919599,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} device-1 | {"device":"5bc2a057-eb4a-4f22-9288-13213c8aceb9","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"5bc2a057-eb4a-4f22-9288-13213c8aceb9","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4f76d290-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"4f76d290-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"device":"65b6fedc-3c31-4d48-94a2-32414e29a692","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"65b6fedc-3c31-4d48-94a2-32414e29a692","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4f76d290-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9/signaling 200 12ms","method":"POST","requestID":"4f76d290-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 7254467254498055394 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:EDbZ\r\na=ice-pwd:Efg8tNgQCE33VV54Gm26tDjV\r\na=ice-options:trickle\r\na=fingerprint:sha-256 18:2B:05:56:BF:F9:59:60:25:D1:CE:93:D4:21:C7:A3:61:E7:51:64:35:3B:09:78:0B:15:7D:8D:92:AC:47:13\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"65b6fedc-3c31-4d48-94a2-32414e29a692","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"content":{"sdp":"v=0\r\no=- 1555922582242472742 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:C3wx\r\na=ice-pwd:C7SULhdN8SpuPVwjC7zbC6pI\r\na=ice-options:trickle\r\na=fingerprint:sha-256 43:E5:F4:DF:6B:95:3F:F5:B6:2C:59:01:33:71:76:E4:9D:DE:8C:86:8A:0A:5D:7E:BB:89:3A:57:84:F2:1F:33\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"5bc2a057-eb4a-4f22-9288-13213c8aceb9","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:1354582337 1 udp 2113937151 f89dba37-e2d6-4883-83dc-4b59fc5e4de5.local 50952 typ host generation 0 ufrag C3wx network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"5bc2a057-eb4a-4f22-9288-13213c8aceb9","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:2568742592 1 udp 2113937151 717347f2-36ea-478b-9da6-d4c7df3ebea7.local 55215 typ host generation 0 ufrag EDbZ network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"65b6fedc-3c31-4d48-94a2-32414e29a692","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:170936275 1 udp 1677729535 141.24.211.56 55215 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag EDbZ network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"65b6fedc-3c31-4d48-94a2-32414e29a692","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692'"} device-1 | {"content":{"candidate":"candidate:3566215998 1 udp 1677729535 141.24.211.56 50952 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag C3wx network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"5bc2a057-eb4a-4f22-9288-13213c8aceb9","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"65b6fedc-3c31-4d48-94a2-32414e29a692","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"5bc2a057-eb4a-4f22-9288-13213c8aceb9","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"65b6fedc-3c31-4d48-94a2-32414e29a692","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/64259472-e234-43fe-8940-0ed2ee515220' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"64259472-e234-43fe-8940-0ed2ee515220","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d5cfe4aaf5b60da1c5c8ff8a9a2d0a41","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"device":"5bc2a057-eb4a-4f22-9288-13213c8aceb9","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"5bc2a057-eb4a-4f22-9288-13213c8aceb9","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"65b6fedc-3c31-4d48-94a2-32414e29a692","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d5cfe4aaf5b60da1c5c8ff8a9a2d0a41","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/64259472-e234-43fe-8940-0ed2ee515220"}}},"level":"info","message":"received a callback","requestID":"d5cfe4aaf5b60da1c5c8ff8a9a2d0a41"} gateway-1 | {"time_local":"18/Jun/2025:09:55:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"d5cfe4aaf5b60da1c5c8ff8a9a2d0a41"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"d5cfe4aaf5b60da1c5c8ff8a9a2d0a41","responseTime":7,"status":200,"url":"/callbacks/experiment"} device-1 | {"device":"5bc2a057-eb4a-4f22-9288-13213c8aceb9","deviceName":"JS Device 2","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"64259472-e234-43fe-8940-0ed2ee515220","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"64259472-e234-43fe-8940-0ed2ee515220","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/64259472-e234-43fe-8940-0ed2ee515220' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"64259472-e234-43fe-8940-0ed2ee515220","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ea8dcfbe9c29859a342e6e3814e463c6","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ea8dcfbe9c29859a342e6e3814e463c6","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/64259472-e234-43fe-8940-0ed2ee515220"}}},"level":"info","message":"received a callback","requestID":"ea8dcfbe9c29859a342e6e3814e463c6"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"4f8885d0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":602,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F64259472-e234-43fe-8940-0ed2ee515220","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c10f980c-dfd4-4eca-9fc5-ba2324fd1982","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.5218902} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":602,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.253317,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/64259472-e234-43fe-8940-0ed2ee515220","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4f8885d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/64259472-e234-43fe-8940-0ed2ee515220","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4f8885d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"4f8885d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/64259472-e234-43fe-8940-0ed2ee515220 200 9ms","method":"GET","requestID":"4f8885d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/peerconnections/64259472-e234-43fe-8940-0ed2ee515220"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4","level":"info","message":"auth send jwt","requestID":"1f90a4bdc32cd9f2cd3835e5d2c51104"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1f90a4bdc32cd9f2cd3835e5d2c51104","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 50ms","method":"POST","requestID":"ea8dcfbe9c29859a342e6e3814e463c6","responseTime":50,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch","requestID":"ea8dcfbe9c29859a342e6e3814e463c6"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec","requestID":"1f90a4bdc32cd9f2cd3835e5d2c51104"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4f8fb1c0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":603,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":604,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":604,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.730853,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"1f90a4bdc32cd9f2cd3835e5d2c51104","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240505,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"1f90a4bdc32cd9f2cd3835e5d2c51104","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a26f98e8-8afd-4262-af82-cd17db56a224","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.5695395} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":603,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.914042,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4f8fb1c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","method":"POST","requestID":"4f8fb1c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4f8fb1c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9/signaling 200 11ms","method":"POST","requestID":"4f8fb1c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9/signaling"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec","requestID":"1f90a4bdc32cd9f2cd3835e5d2c51104"} gateway-1 | {"time_local":"18/Jun/2025:09:55:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec HTTP/1.1","status": "200","body_bytes_sent":"1361","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1f90a4bdc32cd9f2cd3835e5d2c51104"} experiment-1 | {"level":"info","message":"GET /experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec 200 12ms","method":"GET","requestID":"1f90a4bdc32cd9f2cd3835e5d2c51104","responseTime":12,"status":200,"url":"/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4f95a530-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4","level":"info","message":"auth send jwt","requestID":"6e72873fd559d5c9fa868859476742e2"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6e72873fd559d5c9fa868859476742e2","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec","requestID":"6e72873fd559d5c9fa868859476742e2"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":605,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":606,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4575912d-9ed7-427c-83be-a3f9ce43385b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.607727} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":606,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.705047,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6e72873fd559d5c9fa868859476742e2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240505,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6e72873fd559d5c9fa868859476742e2","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":605,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.396527,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4f95a530-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"4f95a530-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4f95a530-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/65b6fedc-3c31-4d48-94a2-32414e29a692/signaling 200 10ms","method":"POST","requestID":"4f95a530-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/65b6fedc-3c31-4d48-94a2-32414e29a692/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec"},"level":"info","message":"Attempting to finish experiment","requestID":"6e72873fd559d5c9fa868859476742e2"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"4f9752e0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":607,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":607,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.686451,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/64259472-e234-43fe-8940-0ed2ee515220","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4f9752e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/64259472-e234-43fe-8940-0ed2ee515220","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240505,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4f9752e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/64259472-e234-43fe-8940-0ed2ee515220","device":"65b6fedc-3c31-4d48-94a2-32414e29a692","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/64259472-e234-43fe-8940-0ed2ee515220","device":"5bc2a057-eb4a-4f22-9288-13213c8aceb9","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F64259472-e234-43fe-8940-0ed2ee515220': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F64259472-e234-43fe-8940-0ed2ee515220","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"331eba98-20a8-4b4a-8e04-7b7b6322c89b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.6512344} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3ae0cb5a-774a-4835-be08-91699b85e9a8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.6515095} authorization-1 | {"level":"info","message":"POST /relations/update 200 31ms","method":"POST","requestID":"4f9752e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/64259472-e234-43fe-8940-0ed2ee515220' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/64259472-e234-43fe-8940-0ed2ee515220' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"64259472-e234-43fe-8940-0ed2ee515220","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b1b18f9c7d4dbbfc4f135e72453ded72","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b1b18f9c7d4dbbfc4f135e72453ded72","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"94893da2aee834b33470db8b8513e4a3","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"94893da2aee834b33470db8b8513e4a3","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/64259472-e234-43fe-8940-0ed2ee515220"}}},"level":"info","message":"received a callback","requestID":"b1b18f9c7d4dbbfc4f135e72453ded72"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"4f9752e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/64259472-e234-43fe-8940-0ed2ee515220 204 47ms","method":"DELETE","requestID":"4f9752e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":47,"status":204,"url":"/peerconnections/64259472-e234-43fe-8940-0ed2ee515220"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/64259472-e234-43fe-8940-0ed2ee515220"}}},"level":"info","message":"received a callback","requestID":"94893da2aee834b33470db8b8513e4a3"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec"},"level":"info","message":"Successfully finished experiment","requestID":"6e72873fd559d5c9fa868859476742e2"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4fa5f8e0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":608,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bc2a057-eb4a-4f22-9288-13213c8aceb9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"990cdaf0-e9a4-429b-88e7-b2dfae0bce32","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.7146175} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":608,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.068187,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4fa5f8e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4fa5f8e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4fa5f8e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9/signaling 200 9ms","method":"POST","requestID":"4fa5f8e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc091bf32-ea1e-4d62-b9fa-b1c360eaddec': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc091bf32-ea1e-4d62-b9fa-b1c360eaddec","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"bbb7f36e-287f-4254-84c8-7e1fb966d846","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.7236602} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c35cf0b1-8df2-4005-9144-ea6747350317","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.723781} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"6e72873fd559d5c9fa868859476742e2","responseTime":38,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4fabc540-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":609,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b6fedc-3c31-4d48-94a2-32414e29a692","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"af1588f2-fbe7-43ab-bfaf-da7a4e8ac954","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.752306} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":609,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.275208,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4fabc540-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4fabc540-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4fabc540-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/65b6fedc-3c31-4d48-94a2-32414e29a692/signaling 200 8ms","method":"POST","requestID":"4fabc540-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/65b6fedc-3c31-4d48-94a2-32414e29a692/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec","requestID":"6e72873fd559d5c9fa868859476742e2"} gateway-1 | {"time_local":"18/Jun/2025:09:55:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.241","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6e72873fd559d5c9fa868859476742e2"} experiment-1 | {"level":"info","message":"DELETE /experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec 204 238ms","method":"DELETE","requestID":"6e72873fd559d5c9fa868859476742e2","responseTime":238,"status":204,"url":"/experiments/c091bf32-ea1e-4d62-b9fa-b1c360eaddec"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 185ms","method":"POST","requestID":"b1b18f9c7d4dbbfc4f135e72453ded72","responseTime":185,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 185ms","method":"POST","requestID":"94893da2aee834b33470db8b8513e4a3","responseTime":185,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.191","http_referrer":"","http_user_agent":"node-fetch","requestID":"b1b18f9c7d4dbbfc4f135e72453ded72"} gateway-1 | {"time_local":"18/Jun/2025:09:55:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.191","http_referrer":"","http_user_agent":"node-fetch","requestID":"94893da2aee834b33470db8b8513e4a3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4","level":"info","message":"auth send jwt","requestID":"b42e571dacf7b9c579d4278d8bb6bfce"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b42e571dacf7b9c579d4278d8bb6bfce","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"b42e571dacf7b9c579d4278d8bb6bfce"} gateway-1 | {"time_local":"18/Jun/2025:09:55:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3244","request_time":"0.989","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3c5c2a17250f49fa91728b78f812324f"} gateway-1 | {"time_local":"18/Jun/2025:09:55:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3247","request_time":"1.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"673e66742155df4d52167974ca90e35e"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":610,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":610,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.140812,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/5bc2a057-eb4a-4f22-9288-13213c8aceb9' closed"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b42e571dacf7b9c579d4278d8bb6bfce","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240505,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"b42e571dacf7b9c579d4278d8bb6bfce","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/65b6fedc-3c31-4d48-94a2-32414e29a692' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0f15e53a-769f-43b0-ab2e-301074d5f58f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.8990386} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b42e571dacf7b9c579d4278d8bb6bfce","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"60df2921-3d68-483d-8d0d-392b936fef8d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.9025505} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"b42e571dacf7b9c579d4278d8bb6bfce","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"d5ca5ecc-2e41-44ef-8220-1d00d8871a81","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.9142625} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"71138f58-be74-4bdf-939e-595198f4ce9e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.9143968} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"b42e571dacf7b9c579d4278d8bb6bfce","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:05.914238715Z"}]},"request_id":"40247382-8347-4ad1-82a4-0a8cb3c3ee0c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.9381483} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"b42e571dacf7b9c579d4278d8bb6bfce"} device-1 | {"level":"info","message":"POST /devices? 201 90ms","method":"POST","requestID":"b42e571dacf7b9c579d4278d8bb6bfce","responseTime":90,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.096","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b42e571dacf7b9c579d4278d8bb6bfce"} authorization-1 | {"level":"info","message":"POST /relations/query 200 25ms","method":"POST","requestID":"b42e571dacf7b9c579d4278d8bb6bfce","responseTime":25,"status":200,"url":"/relations/query"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4","level":"info","message":"auth send jwt","requestID":"b52306b2245a6bf40dcf3fd1cc8b7233"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b52306b2245a6bf40dcf3fd1cc8b7233","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"b52306b2245a6bf40dcf3fd1cc8b7233"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":611,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":611,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.646528,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b52306b2245a6bf40dcf3fd1cc8b7233","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240505,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwNX0.0iyHK24oi6ByQ8CcPBRo38kz6aUeEseAPpwV5CdZ6V4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b52306b2245a6bf40dcf3fd1cc8b7233","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a2bfa2de-9bd0-41d6-bf7d-b2bac30ef40e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.960498} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"b52306b2245a6bf40dcf3fd1cc8b7233","responseTime":26,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e7bfe78e-e35a-42cd-9b59-c6025148c660","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.988229} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"b52306b2245a6bf40dcf3fd1cc8b7233","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"746e9fc1-5c05-4f63-9199-025a5ac0b081","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.9966629} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6b91e603-61f4-4438-b976-64e86c14eed4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240505.9967873} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"b52306b2245a6bf40dcf3fd1cc8b7233","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:05.996641672Z"}]},"request_id":"8daf919b-194e-4c8a-98eb-092fb5d332f4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240506.0001268} authorization-1 | {"level":"info","message":"POST /relations/query 200 1ms","method":"POST","requestID":"b52306b2245a6bf40dcf3fd1cc8b7233","responseTime":1,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"b52306b2245a6bf40dcf3fd1cc8b7233"} device-1 | {"level":"info","message":"POST /devices? 201 56ms","method":"POST","requestID":"b52306b2245a6bf40dcf3fd1cc8b7233","responseTime":56,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.060","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b52306b2245a6bf40dcf3fd1cc8b7233"} forwarding-1 | {"level":"info","message":"Participant \"4300cee1-914e-4fd4-b8b1-916628f99c41\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\" did not answer hearbeat check, closing connection","requestID":"49ed9610-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"cac9d7a3-4c5e-4379-b356-32fb5f7a7cde\" in room \"http://localhost/rooms/b76550c0-a23f-4c72-9249-cdd7e1244313\" did not answer hearbeat check, closing connection","requestID":"49edbd20-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"c4d65b4a-40d7-41c7-86e1-3adf345c39bf\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\"","requestID":"4d4e7450-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\"","requestID":"4d4e9b60-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"55920d799aff2450712eadec489351d2","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"55920d799aff2450712eadec489351d2","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"55920d799aff2450712eadec489351d2"} device-1 | {"level":"info","message":"OPTIONS /devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136/websocket 200 1ms","method":"OPTIONS","requestID":"55920d799aff2450712eadec489351d2","responseTime":1,"status":200,"url":"/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ee6fa5eaa7802dbf70c3a23232505696","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ee6fa5eaa7802dbf70c3a23232505696","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/3587ad11-f33e-4681-ae03-1bf7e110be7b/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ee6fa5eaa7802dbf70c3a23232505696"} device-1 | {"level":"info","message":"OPTIONS /devices/3587ad11-f33e-4681-ae03-1bf7e110be7b/websocket 200 1ms","method":"OPTIONS","requestID":"ee6fa5eaa7802dbf70c3a23232505696","responseTime":1,"status":200,"url":"/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84","level":"info","message":"auth send jwt","requestID":"29055ec1339416c946a49ebcf606dbd5"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"29055ec1339416c946a49ebcf606dbd5","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"29055ec1339416c946a49ebcf606dbd5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84","level":"info","message":"auth send jwt","requestID":"2fc072b0362d1647f954b16afd89599c"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2fc072b0362d1647f954b16afd89599c","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":612,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"2fc072b0362d1647f954b16afd89599c"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":612,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.335033,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"29055ec1339416c946a49ebcf606dbd5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240508,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"29055ec1339416c946a49ebcf606dbd5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":613,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":613,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.150229,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2fc072b0362d1647f954b16afd89599c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240508,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"2fc072b0362d1647f954b16afd89599c","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"29055ec1339416c946a49ebcf606dbd5"} device-1 | {"level":"info","message":"POST /devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136/websocket 200 43ms","method":"POST","requestID":"29055ec1339416c946a49ebcf606dbd5","responseTime":43,"status":200,"url":"/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:55:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.050","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"29055ec1339416c946a49ebcf606dbd5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"2fc072b0362d1647f954b16afd89599c"} device-1 | {"level":"info","message":"POST /devices/3587ad11-f33e-4681-ae03-1bf7e110be7b/websocket 200 52ms","method":"POST","requestID":"2fc072b0362d1647f954b16afd89599c","responseTime":52,"status":200,"url":"/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:55:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/3587ad11-f33e-4681-ae03-1bf7e110be7b/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.058","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2fc072b0362d1647f954b16afd89599c"} device-1 | {"level":"info","message":"device 'http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"28d064f53ed6d2f60c72307fcf24fad0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"28d064f53ed6d2f60c72307fcf24fad0","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"28d064f53ed6d2f60c72307fcf24fad0"} device-1 | {"level":"info","message":"OPTIONS /devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136? 200 0ms","method":"OPTIONS","requestID":"28d064f53ed6d2f60c72307fcf24fad0","responseTime":0,"status":200,"url":"/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84","level":"info","message":"auth send jwt","requestID":"8b6ca0d4ef3eea5e5dc2291b29231bdd"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8b6ca0d4ef3eea5e5dc2291b29231bdd","responseTime":3,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c4c2308fd376c03428b8a6cc247098d7","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"8b6ca0d4ef3eea5e5dc2291b29231bdd"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c4c2308fd376c03428b8a6cc247098d7","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/3587ad11-f33e-4681-ae03-1bf7e110be7b? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c4c2308fd376c03428b8a6cc247098d7"} device-1 | {"level":"info","message":"OPTIONS /devices/3587ad11-f33e-4681-ae03-1bf7e110be7b? 200 1ms","method":"OPTIONS","requestID":"c4c2308fd376c03428b8a6cc247098d7","responseTime":1,"status":200,"url":"/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b?"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":614,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":614,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.698271,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8b6ca0d4ef3eea5e5dc2291b29231bdd","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240508,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8b6ca0d4ef3eea5e5dc2291b29231bdd","responseTime":3,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84","level":"info","message":"auth send jwt","requestID":"3b5486cd6f1e0787065087e8912dea8e"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3b5486cd6f1e0787065087e8912dea8e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"3b5486cd6f1e0787065087e8912dea8e"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:05.914238715Z"}]},"request_id":"30ea6c04-a32c-4d31-ae1e-caa36bd99c0a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.4802608} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8b6ca0d4ef3eea5e5dc2291b29231bdd","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":615,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":615,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.714531,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3b5486cd6f1e0787065087e8912dea8e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240508,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3b5486cd6f1e0787065087e8912dea8e","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6d3115ef-dbc6-476d-9f64-cf084356994d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.4849496} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"8b6ca0d4ef3eea5e5dc2291b29231bdd","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:05.996641672Z"}]},"request_id":"fdf92b23-eec2-450d-b485-9616efeb964f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.4879818} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3b5486cd6f1e0787065087e8912dea8e","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d9913c63-cec2-4243-8175-522c5045fbe7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.491653} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"3b5486cd6f1e0787065087e8912dea8e","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:05.914238715Z"}]},"request_id":"b02986a3-30a3-4981-bbd1-8e89c3b16940","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.4950674} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"8b6ca0d4ef3eea5e5dc2291b29231bdd","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"8b6ca0d4ef3eea5e5dc2291b29231bdd"} device-1 | {"level":"info","message":"PATCH /devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136? 200 26ms","method":"PATCH","requestID":"8b6ca0d4ef3eea5e5dc2291b29231bdd","responseTime":26,"status":200,"url":"/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.028","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8b6ca0d4ef3eea5e5dc2291b29231bdd"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:05.996641672Z"}]},"request_id":"acc3f87d-6325-42e5-9bed-dbdcf926bd38","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.506643} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3b5486cd6f1e0787065087e8912dea8e","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"3b5486cd6f1e0787065087e8912dea8e"} gateway-1 | {"time_local":"18/Jun/2025:09:55:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/3587ad11-f33e-4681-ae03-1bf7e110be7b? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.033","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3b5486cd6f1e0787065087e8912dea8e"} device-1 | {"level":"info","message":"PATCH /devices/3587ad11-f33e-4681-ae03-1bf7e110be7b? 200 29ms","method":"PATCH","requestID":"3b5486cd6f1e0787065087e8912dea8e","responseTime":29,"status":200,"url":"/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84","level":"info","message":"auth send jwt","requestID":"dcd0125174eed020ec71a70fea9713f5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"dcd0125174eed020ec71a70fea9713f5","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"dcd0125174eed020ec71a70fea9713f5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":616,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":616,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.839853,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"dcd0125174eed020ec71a70fea9713f5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240508,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"dcd0125174eed020ec71a70fea9713f5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:05.914238715Z"}]},"request_id":"5acd5246-863c-4daa-863f-6c3239164b1f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.5363874} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"dcd0125174eed020ec71a70fea9713f5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"dcd0125174eed020ec71a70fea9713f5"} gateway-1 | {"time_local":"18/Jun/2025:09:55:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dcd0125174eed020ec71a70fea9713f5"} device-1 | {"level":"info","message":"GET /devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136? 200 10ms","method":"GET","requestID":"dcd0125174eed020ec71a70fea9713f5","responseTime":10,"status":200,"url":"/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84","level":"info","message":"auth send jwt","requestID":"cdd42c1ab139747d0975bcede4c631b7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cdd42c1ab139747d0975bcede4c631b7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"cdd42c1ab139747d0975bcede4c631b7"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":617,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":617,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.873758,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"cdd42c1ab139747d0975bcede4c631b7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240508,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"cdd42c1ab139747d0975bcede4c631b7","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:05.996641672Z"}]},"request_id":"3d24dcf3-21f2-4824-96b8-abee0b895aac","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.5512235} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"cdd42c1ab139747d0975bcede4c631b7","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"cdd42c1ab139747d0975bcede4c631b7"} gateway-1 | {"time_local":"18/Jun/2025:09:55:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3587ad11-f33e-4681-ae03-1bf7e110be7b? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cdd42c1ab139747d0975bcede4c631b7"} device-1 | {"level":"info","message":"GET /devices/3587ad11-f33e-4681-ae03-1bf7e110be7b? 200 35ms","method":"GET","requestID":"cdd42c1ab139747d0975bcede4c631b7","responseTime":35,"status":200,"url":"/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84","level":"info","message":"auth send jwt","requestID":"0c43a29d973fa6d9a322f2d7883421cb"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0c43a29d973fa6d9a322f2d7883421cb","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"0c43a29d973fa6d9a322f2d7883421cb"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":618,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":618,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.658986,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0c43a29d973fa6d9a322f2d7883421cb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240508,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0c43a29d973fa6d9a322f2d7883421cb","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/29efc718-649a-4734-aeb3-cf4c77b41996"},"level":"info","message":"Attempting to run experiment","requestID":"0c43a29d973fa6d9a322f2d7883421cb"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/29efc718-649a-4734-aeb3-cf4c77b41996"},"level":"info","message":"Attempting to book experiment","requestID":"0c43a29d973fa6d9a322f2d7883421cb"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/29efc718-649a-4734-aeb3-cf4c77b41996"},"level":"info","message":"Successfully booked experiment","requestID":"0c43a29d973fa6d9a322f2d7883421cb"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"51661f70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"51664680-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":619,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":619,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.642197,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":620,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"51661f70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240508,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"51661f70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":620,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.601592,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"51664680-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240508,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"51664680-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:05.914238715Z"}]},"request_id":"ea4d0f43-b9ce-4386-b551-206f20ed5a2e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.6783078} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"51661f70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:05.996641672Z"}]},"request_id":"0100949b-9b92-4caf-9fa7-1866396c196d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.6789367} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"51664680-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"51661f70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136? 200 35ms","method":"GET","requestID":"51661f70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"51664680-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/3587ad11-f33e-4681-ae03-1bf7e110be7b? 200 35ms","method":"GET","requestID":"51664680-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/29efc718-649a-4734-aeb3-cf4c77b41996"},"level":"info","message":"Setting up experiment","requestID":"0c43a29d973fa6d9a322f2d7883421cb"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"0c43a29d973fa6d9a322f2d7883421cb"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/29efc718-649a-4734-aeb3-cf4c77b41996"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"0c43a29d973fa6d9a322f2d7883421cb"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/29efc718-649a-4734-aeb3-cf4c77b41996"},"level":"info","message":"Successfully locked booking for experiment","requestID":"0c43a29d973fa6d9a322f2d7883421cb"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/29efc718-649a-4734-aeb3-cf4c77b41996"},"level":"info","message":"Successfully set up experiment","requestID":"0c43a29d973fa6d9a322f2d7883421cb"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5172a290-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5172c9a0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/29efc718-649a-4734-aeb3-cf4c77b41996"},"level":"info","message":"Successfully running experiment","requestID":"0c43a29d973fa6d9a322f2d7883421cb"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":621,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":621,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.687924,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":622,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5172a290-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240508,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5172a290-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":622,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.541214,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5172c9a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240508,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5172c9a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:05.914238715Z"}]},"request_id":"ea41170e-26b0-4358-9fc2-a9f29b812705","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.7374873} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"5172a290-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:05.996641672Z"}]},"request_id":"e14e71ce-dd6f-474c-8ae5-8fbe6bf39e5d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.7381608} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"5172c9a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5172a290-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136? 200 12ms","method":"GET","requestID":"5172a290-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5172c9a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/3587ad11-f33e-4681-ae03-1bf7e110be7b? 200 12ms","method":"GET","requestID":"5172c9a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"51751390-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F29efc718-649a-4734-aeb3-cf4c77b41996#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F29efc718-649a-4734-aeb3-cf4c77b41996","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"64bc0121-6ab9-4be9-a99d-94d676585945","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.747583} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4bf4c648-db1f-428c-9c4d-b14a941f3ac4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.7479293} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"0c43a29d973fa6d9a322f2d7883421cb","responseTime":15,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":623,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f380d017-825f-43bb-a126-bc3523febe7e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.750367} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":623,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.469177,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"51751390-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"51751390-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"51751390-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136/signaling 200 10ms","method":"POST","requestID":"51751390-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/29efc718-649a-4734-aeb3-cf4c77b41996","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"0c43a29d973fa6d9a322f2d7883421cb"} gateway-1 | {"time_local":"18/Jun/2025:09:55:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1288","request_time":"0.176","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0c43a29d973fa6d9a322f2d7883421cb"} experiment-1 | {"level":"info","message":"POST /experiments? 201 172ms","method":"POST","requestID":"0c43a29d973fa6d9a322f2d7883421cb","responseTime":172,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"51770f60-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84","level":"info","message":"auth send jwt","requestID":"03800bfeefdc108e091c38320b6aa133"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"03800bfeefdc108e091c38320b6aa133","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"03800bfeefdc108e091c38320b6aa133"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":624,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":625,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6ce44934-1672-42c7-8e52-eea3a54cbbae","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.7630363} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":625,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.772672,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":624,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.257676,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"03800bfeefdc108e091c38320b6aa133","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240508,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"03800bfeefdc108e091c38320b6aa133","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"51770f60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"51770f60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:05.914238715Z"}]},"request_id":"e7de40df-1779-4372-a15d-4d348cfcd32a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.767356} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"51770f60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/3587ad11-f33e-4681-ae03-1bf7e110be7b/signaling 200 10ms","method":"POST","requestID":"51770f60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"03800bfeefdc108e091c38320b6aa133","responseTime":3,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/29efc718-649a-4734-aeb3-cf4c77b41996"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"0c43a29d973fa6d9a322f2d7883421cb"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5178e420-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"51793240-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"03800bfeefdc108e091c38320b6aa133"} device-1 | {"level":"info","message":"GET /devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136? 200 13ms","method":"GET","requestID":"03800bfeefdc108e091c38320b6aa133","responseTime":13,"status":200,"url":"/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"03800bfeefdc108e091c38320b6aa133"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":626,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":626,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.828998,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":627,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5178e420-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240508,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5178e420-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":627,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.619909,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"51793240-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240508,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"51793240-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84","level":"info","message":"auth send jwt","requestID":"ddc4f189de81e6a51cab54ba41263c71"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ddc4f189de81e6a51cab54ba41263c71","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ddc4f189de81e6a51cab54ba41263c71"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:05.914238715Z"}]},"request_id":"9221d05b-3af8-4496-ba39-da0c02284c47","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.7787042} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5178e420-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:05.996641672Z"}]},"request_id":"3e64eb4e-4fec-44e7-bcad-de9c3005a314","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.7796762} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5178e420-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"51793240-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"GET /devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136? 200 12ms","method":"GET","requestID":"5178e420-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136?"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":628,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":628,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.984543,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ddc4f189de81e6a51cab54ba41263c71","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240508,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ddc4f189de81e6a51cab54ba41263c71","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"51793240-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/3587ad11-f33e-4681-ae03-1bf7e110be7b? 200 13ms","method":"GET","requestID":"51793240-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/29efc718-649a-4734-aeb3-cf4c77b41996"},"level":"info","message":"Building connection plan","requestID":"0c43a29d973fa6d9a322f2d7883421cb"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:05.996641672Z"}]},"request_id":"246dd741-62fb-4f69-bbfd-3c64a2fd7518","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.78662} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"c6541223-18c3-4b0e-9bbb-6c40bfb9399e"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"cc2914bc-6b30-4320-9334-c40b88790631"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"89336403-5238-4655-8e76-2deda35ecdd7"}]},"level":"info","message":"Built pairwise service configurations","requestID":"0c43a29d973fa6d9a322f2d7883421cb"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"0c43a29d973fa6d9a322f2d7883421cb"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"ddc4f189de81e6a51cab54ba41263c71","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"517ba340-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ddc4f189de81e6a51cab54ba41263c71"} device-1 | {"level":"info","message":"GET /devices/3587ad11-f33e-4681-ae03-1bf7e110be7b? 200 13ms","method":"GET","requestID":"ddc4f189de81e6a51cab54ba41263c71","responseTime":13,"status":200,"url":"/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3587ad11-f33e-4681-ae03-1bf7e110be7b? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ddc4f189de81e6a51cab54ba41263c71"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":629,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":629,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.982803,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"517ba340-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240508,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOH0.tL4RCQLAlHm1Su1R3WqG6zlWBGUuIwsU0Au9QCc_H84"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"517ba340-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"c8be1962-f99c-4349-8146-d46dac258d9c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.7986329} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"31287c64-9666-4eb3-bd93-28b9ff4f85f9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.7987957} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"517ba340-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"517ba340-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"517ba340-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5'","requestID":"517ba340-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5'","requestID":"517ba340-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"517ba340-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 31ms","method":"POST","requestID":"517ba340-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"517ba340-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/29efc718-649a-4734-aeb3-cf4c77b41996"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"0c43a29d973fa6d9a322f2d7883421cb"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"51884d70-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":630,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a63dc6da-13b4-4a8c-b009-d43720429a66","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.8764305} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":630,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.744704,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"51884d70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"51884d70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"51884d70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136/signaling 200 9ms","method":"POST","requestID":"51884d70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5189fb20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":631,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c05337af-2ffd-420a-a247-2acac7eb1873","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240508.8862953} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":631,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.316793,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5189fb20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"5189fb20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5189fb20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/3587ad11-f33e-4681-ae03-1bf7e110be7b/signaling 200 32ms","method":"POST","requestID":"5189fb20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b/signaling"} device-1 | {"device":"3587ad11-f33e-4681-ae03-1bf7e110be7b","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"3587ad11-f33e-4681-ae03-1bf7e110be7b","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"device":"52e3aef0-ebc5-4b53-aac8-495eea0d4136","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"52e3aef0-ebc5-4b53-aac8-495eea0d4136","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"content":{"sdp":"v=0\r\no=- 2850322045554323275 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:YdeN\r\na=ice-pwd:cLOp5EoL2I110qcJvYQ5q6mb\r\na=ice-options:trickle\r\na=fingerprint:sha-256 B3:AD:02:EB:4B:18:BE:61:43:F4:D4:BD:89:4B:08:F2:A9:0F:87:30:B7:A2:63:31:B8:79:50:4C:FB:72:17:F6\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"3587ad11-f33e-4681-ae03-1bf7e110be7b","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"content":{"sdp":"v=0\r\no=- 729184097111403917 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:4lGc\r\na=ice-pwd:XWvHta469SvH61kmU2PINvnw\r\na=ice-options:trickle\r\na=fingerprint:sha-256 E5:B4:5F:1A:C4:D6:11:12:99:90:FF:EF:16:02:AB:DE:A8:2D:19:4B:83:A4:4E:B5:1A:4D:68:B9:F3:84:AA:60\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"52e3aef0-ebc5-4b53-aac8-495eea0d4136","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:3181442354 1 udp 2113937151 280ed5e4-26e5-4d11-bcdb-f953470b2156.local 58197 typ host generation 0 ufrag 4lGc network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"52e3aef0-ebc5-4b53-aac8-495eea0d4136","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:780882977 1 udp 1677729535 141.24.211.56 58197 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag 4lGc network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"52e3aef0-ebc5-4b53-aac8-495eea0d4136","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136'"} device-1 | {"content":{"candidate":"candidate:2980642623 1 udp 2113937151 5c5af1c6-4315-497c-9582-5c01009190f4.local 54067 typ host generation 0 ufrag YdeN network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"3587ad11-f33e-4681-ae03-1bf7e110be7b","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:579034668 1 udp 1677729535 141.24.211.56 54067 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag YdeN network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"3587ad11-f33e-4681-ae03-1bf7e110be7b","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b'"} device-1 | {"device":"3587ad11-f33e-4681-ae03-1bf7e110be7b","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a81a1655-aab2-4c8d-8982-fb01e72b00d5","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2b6eb42996da261cc26034f0bdacd371","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"device":"52e3aef0-ebc5-4b53-aac8-495eea0d4136","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"52e3aef0-ebc5-4b53-aac8-495eea0d4136","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"3587ad11-f33e-4681-ae03-1bf7e110be7b","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2b6eb42996da261cc26034f0bdacd371","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5"}}},"level":"info","message":"received a callback","requestID":"2b6eb42996da261cc26034f0bdacd371"} device-1 | {"device":"3587ad11-f33e-4681-ae03-1bf7e110be7b","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"52e3aef0-ebc5-4b53-aac8-495eea0d4136","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"2b6eb42996da261cc26034f0bdacd371","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch","requestID":"2b6eb42996da261cc26034f0bdacd371"} device-1 | {"device":"52e3aef0-ebc5-4b53-aac8-495eea0d4136","deviceName":"JS Device 1","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"a81a1655-aab2-4c8d-8982-fb01e72b00d5","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"a81a1655-aab2-4c8d-8982-fb01e72b00d5","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a81a1655-aab2-4c8d-8982-fb01e72b00d5","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f31a3546009bd68fc7516db51324e15c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"f31a3546009bd68fc7516db51324e15c","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5"}}},"level":"info","message":"received a callback","requestID":"f31a3546009bd68fc7516db51324e15c"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"51a683d0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":632,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:09Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa81a1655-aab2-4c8d-8982-fb01e72b00d5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6fcc3086-130b-4878-a753-3501c36d84c6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240509.0735075} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":632,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.208546,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"51a683d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"51a683d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"51a683d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5 200 8ms","method":"GET","requestID":"51a683d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 50ms","method":"POST","requestID":"f31a3546009bd68fc7516db51324e15c","responseTime":50,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch","requestID":"f31a3546009bd68fc7516db51324e15c"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"51adafc0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":633,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:09Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOX0.KddVeqi3uSuP4S_0-nN2PziceObbYm4ZbHkGT5RnlVg","level":"info","message":"auth send jwt","requestID":"fa17499717c1a12c20fc4bf5b7444597"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"fa17499717c1a12c20fc4bf5b7444597","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/29efc718-649a-4734-aeb3-cf4c77b41996","requestID":"fa17499717c1a12c20fc4bf5b7444597"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dc9a51be-c80d-4118-9749-cd664be3bba8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240509.1202981} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":633,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.441278,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:09Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":634,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"51adafc0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"51adafc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":634,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.63919,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/29efc718-649a-4734-aeb3-cf4c77b41996","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"fa17499717c1a12c20fc4bf5b7444597","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/29efc718-649a-4734-aeb3-cf4c77b41996","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240509,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOX0.KddVeqi3uSuP4S_0-nN2PziceObbYm4ZbHkGT5RnlVg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"fa17499717c1a12c20fc4bf5b7444597","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"51adafc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136/signaling 200 9ms","method":"POST","requestID":"51adafc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"51af5d70-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/29efc718-649a-4734-aeb3-cf4c77b41996","requestID":"fa17499717c1a12c20fc4bf5b7444597"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":635,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:09Z"} gateway-1 | {"time_local":"18/Jun/2025:09:55:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/29efc718-649a-4734-aeb3-cf4c77b41996 HTTP/1.1","status": "200","body_bytes_sent":"1361","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fa17499717c1a12c20fc4bf5b7444597"} experiment-1 | {"level":"info","message":"GET /experiments/29efc718-649a-4734-aeb3-cf4c77b41996 200 11ms","method":"GET","requestID":"fa17499717c1a12c20fc4bf5b7444597","responseTime":11,"status":200,"url":"/experiments/29efc718-649a-4734-aeb3-cf4c77b41996"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1e43affb-0ef3-43fa-96d1-99bef1afdcc1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240509.132146} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":635,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.702907,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"51af5d70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"51af5d70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOX0.KddVeqi3uSuP4S_0-nN2PziceObbYm4ZbHkGT5RnlVg","level":"info","message":"auth send jwt","requestID":"6a22896ffb633b80df7dc99575366bbb"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6a22896ffb633b80df7dc99575366bbb","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/29efc718-649a-4734-aeb3-cf4c77b41996","requestID":"6a22896ffb633b80df7dc99575366bbb"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"51af5d70-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":636,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:09Z"} device-1 | {"level":"info","message":"POST /devices/3587ad11-f33e-4681-ae03-1bf7e110be7b/signaling 200 9ms","method":"POST","requestID":"51af5d70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b/signaling"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":636,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.73596,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:09Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/29efc718-649a-4734-aeb3-cf4c77b41996","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6a22896ffb633b80df7dc99575366bbb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/29efc718-649a-4734-aeb3-cf4c77b41996","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240509,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOX0.KddVeqi3uSuP4S_0-nN2PziceObbYm4ZbHkGT5RnlVg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6a22896ffb633b80df7dc99575366bbb","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/29efc718-649a-4734-aeb3-cf4c77b41996"},"level":"info","message":"Attempting to finish experiment","requestID":"6a22896ffb633b80df7dc99575366bbb"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"51b1f580-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":637,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:09Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":637,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.650403,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:09Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"51b1f580-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240509,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOX0.KddVeqi3uSuP4S_0-nN2PziceObbYm4ZbHkGT5RnlVg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"51b1f580-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5","device":"3587ad11-f33e-4681-ae03-1bf7e110be7b","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5","device":"52e3aef0-ebc5-4b53-aac8-495eea0d4136","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a81a1655-aab2-4c8d-8982-fb01e72b00d5","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c3881ac8-0594-4412-aee6-524024d97c11","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240509.1596189} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa81a1655-aab2-4c8d-8982-fb01e72b00d5': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa81a1655-aab2-4c8d-8982-fb01e72b00d5","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"18c0311d-90a8-4bf3-bafa-06df7211a03f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240509.1599944} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"99665c86902a01d7a8d2f0a90425c9d1","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"99665c86902a01d7a8d2f0a90425c9d1","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"5acc811d10d79b6571b7abbe5651bbcd","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"51b1f580-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5"}}},"level":"info","message":"received a callback","requestID":"99665c86902a01d7a8d2f0a90425c9d1"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5acc811d10d79b6571b7abbe5651bbcd","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5"}}},"level":"info","message":"received a callback","requestID":"5acc811d10d79b6571b7abbe5651bbcd"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"51b1f580-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5 204 51ms","method":"DELETE","requestID":"51b1f580-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":51,"status":204,"url":"/peerconnections/a81a1655-aab2-4c8d-8982-fb01e72b00d5"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/29efc718-649a-4734-aeb3-cf4c77b41996"},"level":"info","message":"Successfully finished experiment","requestID":"6a22896ffb633b80df7dc99575366bbb"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"51bc7cd0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":638,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:09Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3aef0-ebc5-4b53-aac8-495eea0d4136","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"540111ed-2d98-47af-8c04-d5309b0477e5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240509.217725} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":638,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.755002,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"51bc7cd0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"51bc7cd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"51bc7cd0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136/signaling 200 10ms","method":"POST","requestID":"51bc7cd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F29efc718-649a-4734-aeb3-cf4c77b41996': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F29efc718-649a-4734-aeb3-cf4c77b41996","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"e951444a-9e5e-48ba-bab7-ea1f579dd9ed","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240509.2244034} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"89535115-8fd1-4694-b02a-c072668e3e74","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240509.2246432} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"6a22896ffb633b80df7dc99575366bbb","responseTime":14,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"51c29750-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":639,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:09Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3587ad11-f33e-4681-ae03-1bf7e110be7b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c916ca0d-178d-4023-b175-b2bc2e53a78e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240509.258396} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":639,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.277172,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"51c29750-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"51c29750-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"51c29750-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/3587ad11-f33e-4681-ae03-1bf7e110be7b/signaling 200 9ms","method":"POST","requestID":"51c29750-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/29efc718-649a-4734-aeb3-cf4c77b41996","requestID":"6a22896ffb633b80df7dc99575366bbb"} gateway-1 | {"time_local":"18/Jun/2025:09:55:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/29efc718-649a-4734-aeb3-cf4c77b41996 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.224","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6a22896ffb633b80df7dc99575366bbb"} experiment-1 | {"level":"info","message":"DELETE /experiments/29efc718-649a-4734-aeb3-cf4c77b41996 204 221ms","method":"DELETE","requestID":"6a22896ffb633b80df7dc99575366bbb","responseTime":221,"status":204,"url":"/experiments/29efc718-649a-4734-aeb3-cf4c77b41996"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 195ms","method":"POST","requestID":"99665c86902a01d7a8d2f0a90425c9d1","responseTime":195,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.199","http_referrer":"","http_user_agent":"node-fetch","requestID":"99665c86902a01d7a8d2f0a90425c9d1"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 195ms","method":"POST","requestID":"5acc811d10d79b6571b7abbe5651bbcd","responseTime":195,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.199","http_referrer":"","http_user_agent":"node-fetch","requestID":"5acc811d10d79b6571b7abbe5651bbcd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOX0.KddVeqi3uSuP4S_0-nN2PziceObbYm4ZbHkGT5RnlVg","level":"info","message":"auth send jwt","requestID":"0907877eee150cda4caa4590d4120658"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0907877eee150cda4caa4590d4120658","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"0907877eee150cda4caa4590d4120658"} gateway-1 | {"time_local":"18/Jun/2025:09:55:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3246","request_time":"0.927","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d9e07ac925f3a1b4dec47a65645025d8"} gateway-1 | {"time_local":"18/Jun/2025:09:55:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3243","request_time":"0.944","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c60a38c93850f378ca71d765146343af"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":640,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:09Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":640,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.898466,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0907877eee150cda4caa4590d4120658","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240509,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOX0.KddVeqi3uSuP4S_0-nN2PziceObbYm4ZbHkGT5RnlVg"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"0907877eee150cda4caa4590d4120658","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/52e3aef0-ebc5-4b53-aac8-495eea0d4136' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"79fc7bdb-558b-4e1c-8656-7896bd625c34","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240509.413271} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0907877eee150cda4caa4590d4120658","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dda04753-0c3e-46da-b51a-ea362d2d314a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240509.4171574} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/3587ad11-f33e-4681-ae03-1bf7e110be7b' closed"} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"0907877eee150cda4caa4590d4120658","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"a9aa6174-ee47-4725-a0ea-a4946cb3ee83","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240509.449217} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2f69da76-8a66-4b0e-b312-59fcec9d9579","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240509.4495034} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"0907877eee150cda4caa4590d4120658","responseTime":36,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:09.449191569Z"}]},"request_id":"bed7e6e9-9506-4278-a96b-51a9270473ab","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240509.4545035} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"0907877eee150cda4caa4590d4120658","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"0907877eee150cda4caa4590d4120658"} gateway-1 | {"time_local":"18/Jun/2025:09:55:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.099","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0907877eee150cda4caa4590d4120658"} device-1 | {"level":"info","message":"POST /devices? 201 94ms","method":"POST","requestID":"0907877eee150cda4caa4590d4120658","responseTime":94,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOX0.KddVeqi3uSuP4S_0-nN2PziceObbYm4ZbHkGT5RnlVg","level":"info","message":"auth send jwt","requestID":"100b13f9a2410685df8b5e630a78a20c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"100b13f9a2410685df8b5e630a78a20c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"100b13f9a2410685df8b5e630a78a20c"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":641,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:09Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":641,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.657884,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"100b13f9a2410685df8b5e630a78a20c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240509,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUwOX0.KddVeqi3uSuP4S_0-nN2PziceObbYm4ZbHkGT5RnlVg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"100b13f9a2410685df8b5e630a78a20c","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ef574862-3108-45b5-b675-6b0976246efb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240509.5060709} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"100b13f9a2410685df8b5e630a78a20c","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3c29418f-2269-4c5d-a3bd-1b0daed5de63","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240509.5101938} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"100b13f9a2410685df8b5e630a78a20c","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"d64ca04f-e505-4868-aa35-758741cda94a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240509.5435088} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4136d72d-fdb8-4af8-a937-b3973e03f87f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240509.543787} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"100b13f9a2410685df8b5e630a78a20c","responseTime":36,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:09.543487313Z"}]},"request_id":"c5509862-3ff1-4a3b-90c4-b4b4a9ab2097","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240509.547351} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"100b13f9a2410685df8b5e630a78a20c","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"100b13f9a2410685df8b5e630a78a20c"} device-1 | {"level":"info","message":"POST /devices? 201 89ms","method":"POST","requestID":"100b13f9a2410685df8b5e630a78a20c","responseTime":89,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.092","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"100b13f9a2410685df8b5e630a78a20c"} forwarding-1 | {"level":"info","message":"Participant \"90e9c284-0f76-4ea5-a1ef-18ebc5b6459b\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\" did not answer hearbeat check, closing connection","requestID":"4c0a5b90-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"6945f2b4-20aa-4c71-8115-6728398e1894\" in room \"http://localhost/rooms/7e4f775b-c23a-4cd3-b5a1-a40d49ad4f2f\" did not answer hearbeat check, closing connection","requestID":"4c0a82a0-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMH0.qi6UTmdEXmxft-jcszGXnrveu01kvaNqw-HJa6VDCoM","level":"info","message":"auth send jwt","requestID":"d69bfb95011c8e6b55970dd29c98ec0c"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"d69bfb95011c8e6b55970dd29c98ec0c","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"d69bfb95011c8e6b55970dd29c98ec0c"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":642,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:10Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":642,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.74192,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d69bfb95011c8e6b55970dd29c98ec0c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240510,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMH0.qi6UTmdEXmxft-jcszGXnrveu01kvaNqw-HJa6VDCoM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d69bfb95011c8e6b55970dd29c98ec0c","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:09.543487313Z"}]},"request_id":"93ee56dc-9a59-4ccd-ab13-3d908d7ec45f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240510.3627958} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d69bfb95011c8e6b55970dd29c98ec0c","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"18c9ff82-fc60-4257-8e5a-36bf8e68d993","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240510.366952} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"d69bfb95011c8e6b55970dd29c98ec0c","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:09.543487313Z"}]},"request_id":"91e6f704-730a-40a7-b0fa-f4db83d6e0e4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240510.4099088} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d69bfb95011c8e6b55970dd29c98ec0c","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"d69bfb95011c8e6b55970dd29c98ec0c"} device-1 | {"level":"info","message":"PATCH /devices/6aa49a3a-d331-4325-ab9f-d36b322bc719 200 57ms","method":"PATCH","requestID":"d69bfb95011c8e6b55970dd29c98ec0c","responseTime":57,"status":200,"url":"/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719"} gateway-1 | {"time_local":"18/Jun/2025:09:55:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/6aa49a3a-d331-4325-ab9f-d36b322bc719 HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.086","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"d69bfb95011c8e6b55970dd29c98ec0c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMH0.qi6UTmdEXmxft-jcszGXnrveu01kvaNqw-HJa6VDCoM","level":"info","message":"auth send jwt","requestID":"0f6188a92f7c11f6d9795e2a56824d56"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0f6188a92f7c11f6d9795e2a56824d56","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"0f6188a92f7c11f6d9795e2a56824d56"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":643,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:10Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":643,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.844533,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0f6188a92f7c11f6d9795e2a56824d56","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240510,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMH0.qi6UTmdEXmxft-jcszGXnrveu01kvaNqw-HJa6VDCoM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0f6188a92f7c11f6d9795e2a56824d56","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"0f6188a92f7c11f6d9795e2a56824d56"} device-1 | {"level":"info","message":"POST /devices/6aa49a3a-d331-4325-ab9f-d36b322bc719/websocket 200 15ms","method":"POST","requestID":"0f6188a92f7c11f6d9795e2a56824d56","responseTime":15,"status":200,"url":"/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:55:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6aa49a3a-d331-4325-ab9f-d36b322bc719/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.018","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"0f6188a92f7c11f6d9795e2a56824d56"} device-1 | {"level":"info","message":"device 'http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"46f38f728bc77d695ef2c6e36e6363f9","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"46f38f728bc77d695ef2c6e36e6363f9","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/7f93607e-a283-4d80-af66-1ed4d05c3d08/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"46f38f728bc77d695ef2c6e36e6363f9"} device-1 | {"level":"info","message":"OPTIONS /devices/7f93607e-a283-4d80-af66-1ed4d05c3d08/websocket 200 1ms","method":"OPTIONS","requestID":"46f38f728bc77d695ef2c6e36e6363f9","responseTime":1,"status":200,"url":"/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMX0.t87RcU9wl-pcgOURn78wLKIfnR_GMrQo-YDRVJic4V8","level":"info","message":"auth send jwt","requestID":"6b3ce2ce59e70f8e9318ca5f746ab1ad"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6b3ce2ce59e70f8e9318ca5f746ab1ad","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"6b3ce2ce59e70f8e9318ca5f746ab1ad"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":644,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:11Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":644,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.263727,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b3ce2ce59e70f8e9318ca5f746ab1ad","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240511,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMX0.t87RcU9wl-pcgOURn78wLKIfnR_GMrQo-YDRVJic4V8"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6b3ce2ce59e70f8e9318ca5f746ab1ad","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"6b3ce2ce59e70f8e9318ca5f746ab1ad"} gateway-1 | {"time_local":"18/Jun/2025:09:55:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7f93607e-a283-4d80-af66-1ed4d05c3d08/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.033","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6b3ce2ce59e70f8e9318ca5f746ab1ad"} device-1 | {"level":"info","message":"POST /devices/7f93607e-a283-4d80-af66-1ed4d05c3d08/websocket 200 27ms","method":"POST","requestID":"6b3ce2ce59e70f8e9318ca5f746ab1ad","responseTime":27,"status":200,"url":"/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08/websocket"} forwarding-1 | {"level":"info","message":"Participant \"c4d65b4a-40d7-41c7-86e1-3adf345c39bf\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\" did not answer hearbeat check, closing connection","requestID":"4d4e7450-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"42a6a12e-1822-41d4-a550-e278c3cfb741\" in room \"http://localhost/rooms/8aee777b-5ab4-4861-ac15-cae6628809e5\" did not answer hearbeat check, closing connection","requestID":"4d4e9b60-4c2a-11f0-b702-8b8a85c3ad9a"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"12cca47fb90d4716d58e33430cfa286d","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"12cca47fb90d4716d58e33430cfa286d","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/7f93607e-a283-4d80-af66-1ed4d05c3d08? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"12cca47fb90d4716d58e33430cfa286d"} device-1 | {"level":"info","message":"OPTIONS /devices/7f93607e-a283-4d80-af66-1ed4d05c3d08? 200 1ms","method":"OPTIONS","requestID":"12cca47fb90d4716d58e33430cfa286d","responseTime":1,"status":200,"url":"/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMX0.t87RcU9wl-pcgOURn78wLKIfnR_GMrQo-YDRVJic4V8","level":"info","message":"auth send jwt","requestID":"7fb1823ba316821ade64e6ce7ef58edd"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7fb1823ba316821ade64e6ce7ef58edd","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"7fb1823ba316821ade64e6ce7ef58edd"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":645,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:11Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":645,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.156448,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7fb1823ba316821ade64e6ce7ef58edd","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240511,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMX0.t87RcU9wl-pcgOURn78wLKIfnR_GMrQo-YDRVJic4V8"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"7fb1823ba316821ade64e6ce7ef58edd","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:09.449191569Z"}]},"request_id":"8864d315-df2b-43d8-9f8f-0170b31ee513","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240511.821644} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"7fb1823ba316821ade64e6ce7ef58edd","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"40b9fcd2-44ba-4b6e-884b-2646c06425e0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240511.826929} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"7fb1823ba316821ade64e6ce7ef58edd","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:09.449191569Z"}]},"request_id":"609ffbe6-0d39-4155-9beb-c825b0e863d3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240511.837283} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"7fb1823ba316821ade64e6ce7ef58edd","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"7fb1823ba316821ade64e6ce7ef58edd"} gateway-1 | {"time_local":"18/Jun/2025:09:55:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/7f93607e-a283-4d80-af66-1ed4d05c3d08? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.037","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7fb1823ba316821ade64e6ce7ef58edd"} device-1 | {"level":"info","message":"PATCH /devices/7f93607e-a283-4d80-af66-1ed4d05c3d08? 200 32ms","method":"PATCH","requestID":"7fb1823ba316821ade64e6ce7ef58edd","responseTime":32,"status":200,"url":"/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMX0.t87RcU9wl-pcgOURn78wLKIfnR_GMrQo-YDRVJic4V8","level":"info","message":"auth send jwt","requestID":"65c1e3453fb42bdf1a53965f7311033f"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"65c1e3453fb42bdf1a53965f7311033f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"65c1e3453fb42bdf1a53965f7311033f"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":646,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:11Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":646,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.656198,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"65c1e3453fb42bdf1a53965f7311033f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240511,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMX0.t87RcU9wl-pcgOURn78wLKIfnR_GMrQo-YDRVJic4V8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"65c1e3453fb42bdf1a53965f7311033f","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:09.449191569Z"}]},"request_id":"dec9bfff-ec4c-4c1b-85be-5f47dbbbe716","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240511.8593967} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"65c1e3453fb42bdf1a53965f7311033f","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"65c1e3453fb42bdf1a53965f7311033f"} gateway-1 | {"time_local":"18/Jun/2025:09:55:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7f93607e-a283-4d80-af66-1ed4d05c3d08? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"65c1e3453fb42bdf1a53965f7311033f"} device-1 | {"level":"info","message":"GET /devices/7f93607e-a283-4d80-af66-1ed4d05c3d08? 200 13ms","method":"GET","requestID":"65c1e3453fb42bdf1a53965f7311033f","responseTime":13,"status":200,"url":"/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMX0.t87RcU9wl-pcgOURn78wLKIfnR_GMrQo-YDRVJic4V8","level":"info","message":"auth send jwt","requestID":"0f01a9f89f1d7cb419b7a810fad7c401"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0f01a9f89f1d7cb419b7a810fad7c401","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0f01a9f89f1d7cb419b7a810fad7c401"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":647,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:11Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":647,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.689664,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0f01a9f89f1d7cb419b7a810fad7c401","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240511,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMX0.t87RcU9wl-pcgOURn78wLKIfnR_GMrQo-YDRVJic4V8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0f01a9f89f1d7cb419b7a810fad7c401","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:09.543487313Z"}]},"request_id":"790cb928-6710-4d08-9f56-0afd1553937b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240511.8733323} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"0f01a9f89f1d7cb419b7a810fad7c401","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0f01a9f89f1d7cb419b7a810fad7c401"} gateway-1 | {"time_local":"18/Jun/2025:09:55:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6aa49a3a-d331-4325-ab9f-d36b322bc719? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0f01a9f89f1d7cb419b7a810fad7c401"} device-1 | {"level":"info","message":"GET /devices/6aa49a3a-d331-4325-ab9f-d36b322bc719? 200 9ms","method":"GET","requestID":"0f01a9f89f1d7cb419b7a810fad7c401","responseTime":9,"status":200,"url":"/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMX0.t87RcU9wl-pcgOURn78wLKIfnR_GMrQo-YDRVJic4V8","level":"info","message":"auth send jwt","requestID":"bf1c0d3d7260b01714571bb755eedcaf"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bf1c0d3d7260b01714571bb755eedcaf","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"bf1c0d3d7260b01714571bb755eedcaf"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":648,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:11Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":648,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.196748,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:11Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"bf1c0d3d7260b01714571bb755eedcaf","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240511,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMX0.t87RcU9wl-pcgOURn78wLKIfnR_GMrQo-YDRVJic4V8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"bf1c0d3d7260b01714571bb755eedcaf","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3"},"level":"info","message":"Attempting to run experiment","requestID":"bf1c0d3d7260b01714571bb755eedcaf"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3"},"level":"info","message":"Attempting to book experiment","requestID":"bf1c0d3d7260b01714571bb755eedcaf"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3"},"level":"info","message":"Successfully booked experiment","requestID":"bf1c0d3d7260b01714571bb755eedcaf"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"535d0d70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"535d3480-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":649,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:11Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":649,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.724072,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:11Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":650,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"535d0d70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240511,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMX0.t87RcU9wl-pcgOURn78wLKIfnR_GMrQo-YDRVJic4V8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"535d0d70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":650,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.634443,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"535d3480-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240511,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMX0.t87RcU9wl-pcgOURn78wLKIfnR_GMrQo-YDRVJic4V8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"535d3480-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:09.449191569Z"}]},"request_id":"547581b9-ce89-471d-9f5f-f4ae782f0624","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240511.9504929} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"535d0d70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:09.543487313Z"}]},"request_id":"b187d48e-6cef-4e2a-ad65-8cffe31909ed","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240511.9513743} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"535d3480-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"535d3480-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/6aa49a3a-d331-4325-ab9f-d36b322bc719? 200 12ms","method":"GET","requestID":"535d3480-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"535d0d70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/7f93607e-a283-4d80-af66-1ed4d05c3d08? 200 14ms","method":"GET","requestID":"535d0d70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3"},"level":"info","message":"Setting up experiment","requestID":"bf1c0d3d7260b01714571bb755eedcaf"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"bf1c0d3d7260b01714571bb755eedcaf"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"bf1c0d3d7260b01714571bb755eedcaf"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3"},"level":"info","message":"Successfully locked booking for experiment","requestID":"bf1c0d3d7260b01714571bb755eedcaf"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3"},"level":"info","message":"Successfully set up experiment","requestID":"bf1c0d3d7260b01714571bb755eedcaf"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"53676db0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"536794c0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3"},"level":"info","message":"Successfully running experiment","requestID":"bf1c0d3d7260b01714571bb755eedcaf"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":651,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":651,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.686326,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":652,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"53676db0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240511,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMX0.t87RcU9wl-pcgOURn78wLKIfnR_GMrQo-YDRVJic4V8"} authorization-1 | {"level":"info","message":"POST /authorize 200 24ms","method":"POST","requestID":"53676db0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":24,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":652,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.685945,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"536794c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240511,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMX0.t87RcU9wl-pcgOURn78wLKIfnR_GMrQo-YDRVJic4V8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"536794c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:09.449191569Z"}]},"request_id":"d18dec8b-c013-4ad3-87a3-186c59ac292a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240512.0404189} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"53676db0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:09.543487313Z"}]},"request_id":"885265dc-658b-4df2-be28-6b6085fbaff4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240512.0410745} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"536794c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"53676db0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/7f93607e-a283-4d80-af66-1ed4d05c3d08? 200 34ms","method":"GET","requestID":"53676db0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"536794c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/6aa49a3a-d331-4325-ab9f-d36b322bc719? 200 34ms","method":"GET","requestID":"536794c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc08d723d-0b7c-41f4-9a51-7372a055ccf3#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc08d723d-0b7c-41f4-9a51-7372a055ccf3","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"db2c851b-fb99-4f23-93c0-4b430cd4bf1d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240512.0466454} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4af222c3-b1e0-460e-8dd9-96cefc634b05","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240512.0468931} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"bf1c0d3d7260b01714571bb755eedcaf","responseTime":11,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"536d3a10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":653,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:12Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"bf1c0d3d7260b01714571bb755eedcaf"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2a097fde-1c68-4c6f-925f-b991fe3897dd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240512.0536487} gateway-1 | {"time_local":"18/Jun/2025:09:55:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1292","request_time":"0.177","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bf1c0d3d7260b01714571bb755eedcaf"} experiment-1 | {"level":"info","message":"POST /experiments? 201 174ms","method":"POST","requestID":"bf1c0d3d7260b01714571bb755eedcaf","responseTime":174,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":653,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.756132,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"536d3a10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"536d3a10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMn0.zOtPFoJcvjkscMLo2QxVblFN3WjJrorSspDaIV7GG0Q","level":"info","message":"auth send jwt","requestID":"7ca8c9a27cdf1b0c207fafbd2ba3bb5c"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"7ca8c9a27cdf1b0c207fafbd2ba3bb5c","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7ca8c9a27cdf1b0c207fafbd2ba3bb5c"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"536d3a10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/7f93607e-a283-4d80-af66-1ed4d05c3d08/signaling 200 35ms","method":"POST","requestID":"536d3a10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08/signaling"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":654,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":654,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.908533,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7ca8c9a27cdf1b0c207fafbd2ba3bb5c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240512,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMn0.zOtPFoJcvjkscMLo2QxVblFN3WjJrorSspDaIV7GG0Q"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"53730670-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"7ca8c9a27cdf1b0c207fafbd2ba3bb5c","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":655,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:09.449191569Z"}]},"request_id":"52ad4517-5b99-42f8-8fa4-a00d3e7263e8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240512.0915704} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"45ce7a04-e780-490e-bb74-c386535dab61","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240512.0917084} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"7ca8c9a27cdf1b0c207fafbd2ba3bb5c","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":655,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.372644,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"53730670-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"53730670-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7ca8c9a27cdf1b0c207fafbd2ba3bb5c"} gateway-1 | {"time_local":"18/Jun/2025:09:55:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7f93607e-a283-4d80-af66-1ed4d05c3d08? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7ca8c9a27cdf1b0c207fafbd2ba3bb5c"} device-1 | {"level":"info","message":"GET /devices/7f93607e-a283-4d80-af66-1ed4d05c3d08? 200 13ms","method":"GET","requestID":"7ca8c9a27cdf1b0c207fafbd2ba3bb5c","responseTime":13,"status":200,"url":"/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"53730670-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/6aa49a3a-d331-4325-ab9f-d36b322bc719/signaling 200 9ms","method":"POST","requestID":"53730670-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"bf1c0d3d7260b01714571bb755eedcaf"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5374db30-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMn0.zOtPFoJcvjkscMLo2QxVblFN3WjJrorSspDaIV7GG0Q","level":"info","message":"auth send jwt","requestID":"c412dbbee6d60ee32ec1435e7b836169"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c412dbbee6d60ee32ec1435e7b836169","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"53750240-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"c412dbbee6d60ee32ec1435e7b836169"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Received request.","req_id":656,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"client_addr":"127.0.0.1:55760","level":"info","msg":"Sent response.","req_id":656,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.910613,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Received request.","req_id":657,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5374db30-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240511,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMX0.t87RcU9wl-pcgOURn78wLKIfnR_GMrQo-YDRVJic4V8"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"5374db30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52884","level":"info","msg":"Sent response.","req_id":657,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.509885,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"53750240-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240511,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMX0.t87RcU9wl-pcgOURn78wLKIfnR_GMrQo-YDRVJic4V8"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"53750240-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":658,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":658,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.782929,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c412dbbee6d60ee32ec1435e7b836169","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240512,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMn0.zOtPFoJcvjkscMLo2QxVblFN3WjJrorSspDaIV7GG0Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"c412dbbee6d60ee32ec1435e7b836169","responseTime":31,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:09.543487313Z"}]},"request_id":"3171b5c7-a3e3-49e6-9b18-6146695ca95e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240512.132876} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:09.449191569Z"}]},"request_id":"e4b22560-631e-44bd-a950-28c13ce756a5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240512.1336107} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"53750240-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5374db30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:09.543487313Z"}]},"request_id":"d7ffc960-8ff3-44ce-abc7-1f6a25d1409c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240512.1371198} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c412dbbee6d60ee32ec1435e7b836169","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"53750240-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/6aa49a3a-d331-4325-ab9f-d36b322bc719? 200 39ms","method":"GET","requestID":"53750240-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":200,"url":"/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5374db30-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/7f93607e-a283-4d80-af66-1ed4d05c3d08? 200 40ms","method":"GET","requestID":"5374db30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":40,"status":200,"url":"/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"c412dbbee6d60ee32ec1435e7b836169"} device-1 | {"level":"info","message":"GET /devices/6aa49a3a-d331-4325-ab9f-d36b322bc719? 200 40ms","method":"GET","requestID":"c412dbbee6d60ee32ec1435e7b836169","responseTime":40,"status":200,"url":"/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6aa49a3a-d331-4325-ab9f-d36b322bc719? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c412dbbee6d60ee32ec1435e7b836169"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3"},"level":"info","message":"Building connection plan","requestID":"bf1c0d3d7260b01714571bb755eedcaf"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"a5fb3d3e-1d8d-4d06-819f-61f7fab0c03e"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"fe3ad493-ec14-4bad-af02-7d5edf277c5f"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"b6cee6a3-6a5d-4a84-8a3c-8f0f760641fa"}]},"level":"info","message":"Built pairwise service configurations","requestID":"bf1c0d3d7260b01714571bb755eedcaf"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"bf1c0d3d7260b01714571bb755eedcaf"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"537b6ae0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":659,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":659,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.139958,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"537b6ae0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240511,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxMX0.t87RcU9wl-pcgOURn78wLKIfnR_GMrQo-YDRVJic4V8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"537b6ae0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"514d428a-9427-4759-bc04-f035ae1be36b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240512.1774333} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cf95c786-764f-4e95-bad9-9c6cff7207f8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240512.1774814} authorization-1 | {"level":"info","message":"POST /relations/update 200 29ms","method":"POST","requestID":"537b6ae0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"537b6ae0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"537b6ae0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/0a187426-4465-4407-b516-5f1e719e49c2'","requestID":"537b6ae0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/0a187426-4465-4407-b516-5f1e719e49c2'","requestID":"537b6ae0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"537b6ae0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 54ms","method":"POST","requestID":"537b6ae0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":54,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"537b6ae0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"bf1c0d3d7260b01714571bb755eedcaf"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"538c0cb0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":660,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"284aa04d-0dab-4023-b6f1-394c9868e99b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240512.2759824} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":660,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.509784,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"538c0cb0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"538c0cb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"538c0cb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/7f93607e-a283-4d80-af66-1ed4d05c3d08/signaling 200 29ms","method":"POST","requestID":"538c0cb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5390eeb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"device":"7f93607e-a283-4d80-af66-1ed4d05c3d08","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"7f93607e-a283-4d80-af66-1ed4d05c3d08","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":661,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ae3b6175-6ae0-44e7-9f95-f4dd3c3f8fe5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240512.2878275} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":661,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.506548,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5390eeb0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"5390eeb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"content":{"sdp":"v=0\r\no=- 1552012110531418172 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:Cuve\r\na=ice-pwd:nKom78XKwvmvraX0kUJJTyIp\r\na=ice-options:trickle\r\na=fingerprint:sha-256 90:08:27:98:54:A5:33:B6:81:71:1D:01:C6:82:25:40:09:E5:35:9E:6F:F6:A5:3D:36:54:8A:04:31:03:7C:B1\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"7f93607e-a283-4d80-af66-1ed4d05c3d08","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5390eeb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/6aa49a3a-d331-4325-ab9f-d36b322bc719/signaling 200 11ms","method":"POST","requestID":"5390eeb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719/signaling"} device-1 | {"device":"6aa49a3a-d331-4325-ab9f-d36b322bc719","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"0a187426-4465-4407-b516-5f1e719e49c2","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"6aa49a3a-d331-4325-ab9f-d36b322bc719","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"6aa49a3a-d331-4325-ab9f-d36b322bc719","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"6aa49a3a-d331-4325-ab9f-d36b322bc719","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"6aa49a3a-d331-4325-ab9f-d36b322bc719","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/0a187426-4465-4407-b516-5f1e719e49c2' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0a187426-4465-4407-b516-5f1e719e49c2","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2be1151852beadb470a63392db9ca169","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2be1151852beadb470a63392db9ca169","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/0a187426-4465-4407-b516-5f1e719e49c2"}}},"level":"info","message":"received a callback","requestID":"2be1151852beadb470a63392db9ca169"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"2be1151852beadb470a63392db9ca169","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"2be1151852beadb470a63392db9ca169"} device-1 | {"content":{"candidate":"candidate:21865005 1 udp 2113937151 62453a41-385f-46eb-b779-6dac15dd8aa1.local 58561 typ host generation 0 ufrag Cuve network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"7f93607e-a283-4d80-af66-1ed4d05c3d08","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:2456159038 1 udp 1677729535 141.24.211.56 58561 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag Cuve network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"7f93607e-a283-4d80-af66-1ed4d05c3d08","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"7f93607e-a283-4d80-af66-1ed4d05c3d08","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"7f93607e-a283-4d80-af66-1ed4d05c3d08","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08'"} device-1 | {"data":{"peerconnection":"0a187426-4465-4407-b516-5f1e719e49c2","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"6aa49a3a-d331-4325-ab9f-d36b322bc719","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"7f93607e-a283-4d80-af66-1ed4d05c3d08","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"6aa49a3a-d331-4325-ab9f-d36b322bc719","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"0a187426-4465-4407-b516-5f1e719e49c2","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/0a187426-4465-4407-b516-5f1e719e49c2' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0a187426-4465-4407-b516-5f1e719e49c2","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"4473c55a43ea1af4cb04a8f958df6e38","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"4473c55a43ea1af4cb04a8f958df6e38","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/0a187426-4465-4407-b516-5f1e719e49c2"}}},"level":"info","message":"received a callback","requestID":"4473c55a43ea1af4cb04a8f958df6e38"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"54cf8930-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":662,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:14Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0a187426-4465-4407-b516-5f1e719e49c2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"04a027b7-5dc1-41e8-bae3-42dafafd9b7e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240514.3756542} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":662,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.692579,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/0a187426-4465-4407-b516-5f1e719e49c2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"54cf8930-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/0a187426-4465-4407-b516-5f1e719e49c2","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"54cf8930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"54cf8930-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/0a187426-4465-4407-b516-5f1e719e49c2 200 26ms","method":"GET","requestID":"54cf8930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":26,"status":200,"url":"/peerconnections/0a187426-4465-4407-b516-5f1e719e49c2"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 75ms","method":"POST","requestID":"4473c55a43ea1af4cb04a8f958df6e38","responseTime":75,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.078","http_referrer":"","http_user_agent":"node-fetch","requestID":"4473c55a43ea1af4cb04a8f958df6e38"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"54da85b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":663,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:14Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxNH0.uFLsWvDOmi-qf9V9aB7_L6-nzHy_rzubAPYLp6dBavw","level":"info","message":"auth send jwt","requestID":"77817765eb7b6a993cdfb23a0cf8bb80"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"77817765eb7b6a993cdfb23a0cf8bb80","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f40a8bbe-4064-4a4a-9d9e-8d7ab9403cb0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240514.448051} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3","requestID":"77817765eb7b6a993cdfb23a0cf8bb80"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":663,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.643993,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"54da85b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"54da85b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":664,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:14Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":664,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.731302,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:14Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"54da85b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/6aa49a3a-d331-4325-ab9f-d36b322bc719/signaling 200 10ms","method":"POST","requestID":"54da85b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"77817765eb7b6a993cdfb23a0cf8bb80","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240514,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxNH0.uFLsWvDOmi-qf9V9aB7_L6-nzHy_rzubAPYLp6dBavw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"77817765eb7b6a993cdfb23a0cf8bb80","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"54dc5a70-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":665,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:14Z"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3","requestID":"77817765eb7b6a993cdfb23a0cf8bb80"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f7ce7e1c-6591-45ec-b133-e822096821ef","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240514.4837763} gateway-1 | {"time_local":"18/Jun/2025:09:55:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3 HTTP/1.1","status": "200","body_bytes_sent":"1365","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"77817765eb7b6a993cdfb23a0cf8bb80"} experiment-1 | {"level":"info","message":"GET /experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3 200 36ms","method":"GET","requestID":"77817765eb7b6a993cdfb23a0cf8bb80","responseTime":36,"status":200,"url":"/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":665,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.615796,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"54dc5a70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"54dc5a70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"54dc5a70-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxNH0.uFLsWvDOmi-qf9V9aB7_L6-nzHy_rzubAPYLp6dBavw","level":"info","message":"auth send jwt","requestID":"b88b91b33e52a77cd2b7ab21bcc22ab7"} device-1 | {"level":"info","message":"POST /devices/7f93607e-a283-4d80-af66-1ed4d05c3d08/signaling 200 33ms","method":"POST","requestID":"54dc5a70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b88b91b33e52a77cd2b7ab21bcc22ab7","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3","requestID":"b88b91b33e52a77cd2b7ab21bcc22ab7"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":666,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:14Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":666,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.725858,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:14Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b88b91b33e52a77cd2b7ab21bcc22ab7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240514,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxNH0.uFLsWvDOmi-qf9V9aB7_L6-nzHy_rzubAPYLp6dBavw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b88b91b33e52a77cd2b7ab21bcc22ab7","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3"},"level":"info","message":"Attempting to finish experiment","requestID":"b88b91b33e52a77cd2b7ab21bcc22ab7"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"54e2ea20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":667,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:14Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":667,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.680512,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:14Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/0a187426-4465-4407-b516-5f1e719e49c2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"54e2ea20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/0a187426-4465-4407-b516-5f1e719e49c2","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240514,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxNH0.uFLsWvDOmi-qf9V9aB7_L6-nzHy_rzubAPYLp6dBavw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"54e2ea20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/0a187426-4465-4407-b516-5f1e719e49c2","device":"7f93607e-a283-4d80-af66-1ed4d05c3d08","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"6aa49a3a-d331-4325-ab9f-d36b322bc719","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"6aa49a3a-d331-4325-ab9f-d36b322bc719","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"6aa49a3a-d331-4325-ab9f-d36b322bc719","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/0a187426-4465-4407-b516-5f1e719e49c2' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/0a187426-4465-4407-b516-5f1e719e49c2' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0a187426-4465-4407-b516-5f1e719e49c2","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0a187426-4465-4407-b516-5f1e719e49c2': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0a187426-4465-4407-b516-5f1e719e49c2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"da937259-99ce-4cc6-b689-49b9062d6725","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240514.5362215} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"35514434-5f90-472d-81b1-d2fbe7eb4698","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240514.5364678} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"54e2ea20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f5ed4546a665f7a6301fa37f91ff6464","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f5ed4546a665f7a6301fa37f91ff6464","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c873719d438140c9ce985f3d059e8231","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/0a187426-4465-4407-b516-5f1e719e49c2"}}},"level":"info","message":"received a callback","requestID":"f5ed4546a665f7a6301fa37f91ff6464"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"c873719d438140c9ce985f3d059e8231","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/0a187426-4465-4407-b516-5f1e719e49c2"}}},"level":"info","message":"received a callback","requestID":"c873719d438140c9ce985f3d059e8231"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"54e2ea20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/0a187426-4465-4407-b516-5f1e719e49c2 204 90ms","method":"DELETE","requestID":"54e2ea20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":90,"status":204,"url":"/peerconnections/0a187426-4465-4407-b516-5f1e719e49c2"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3"},"level":"info","message":"Successfully finished experiment","requestID":"b88b91b33e52a77cd2b7ab21bcc22ab7"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"54f2efb0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":668,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:14Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":668,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.581024,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:14Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6aa49a3a-d331-4325-ab9f-d36b322bc719","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e9d9680c-0bd7-400c-b870-aa01ca472ae9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240514.6072674} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"54f2efb0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"54f2efb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"54f2efb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/6aa49a3a-d331-4325-ab9f-d36b322bc719/signaling 200 10ms","method":"POST","requestID":"54f2efb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"54f4c470-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc08d723d-0b7c-41f4-9a51-7372a055ccf3': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc08d723d-0b7c-41f4-9a51-7372a055ccf3","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"15f4ea7e-00ed-40da-86d5-781ba727fc58","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240514.618088} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"58069884-f471-4b04-8bf4-ea42697ba27f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240514.6184418} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":669,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:14Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 18ms","method":"POST","requestID":"b88b91b33e52a77cd2b7ab21bcc22ab7","responseTime":18,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f93607e-a283-4d80-af66-1ed4d05c3d08","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0576014a-32f0-43d5-836c-43a540172e91","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240514.6212757} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":669,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.186778,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"54f4c470-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"54f4c470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"54f4c470-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/7f93607e-a283-4d80-af66-1ed4d05c3d08/signaling 200 11ms","method":"POST","requestID":"54f4c470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3","requestID":"b88b91b33e52a77cd2b7ab21bcc22ab7"} gateway-1 | {"time_local":"18/Jun/2025:09:55:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.190","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b88b91b33e52a77cd2b7ab21bcc22ab7"} experiment-1 | {"level":"info","message":"DELETE /experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3 204 187ms","method":"DELETE","requestID":"b88b91b33e52a77cd2b7ab21bcc22ab7","responseTime":187,"status":204,"url":"/experiments/c08d723d-0b7c-41f4-9a51-7372a055ccf3"} gateway-1 | {"time_local":"18/Jun/2025:09:55:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3243","request_time":"4.244","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"42f2854305626c26fbf31007a57aa4a6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 139ms","method":"POST","requestID":"f5ed4546a665f7a6301fa37f91ff6464","responseTime":139,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 139ms","method":"POST","requestID":"c873719d438140c9ce985f3d059e8231","responseTime":139,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxNH0.uFLsWvDOmi-qf9V9aB7_L6-nzHy_rzubAPYLp6dBavw","level":"info","message":"auth send jwt","requestID":"68c527af9de418705ca4edda6c66b446"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"68c527af9de418705ca4edda6c66b446","responseTime":3,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.142","http_referrer":"","http_user_agent":"node-fetch","requestID":"f5ed4546a665f7a6301fa37f91ff6464"} gateway-1 | {"time_local":"18/Jun/2025:09:55:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.141","http_referrer":"","http_user_agent":"node-fetch","requestID":"c873719d438140c9ce985f3d059e8231"} device-1 | {"level":"info","message":"postDevices called","requestID":"68c527af9de418705ca4edda6c66b446"} gateway-1 | {"time_local":"18/Jun/2025:09:55:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3440","request_time":"2.908","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"dbcc9b842261105f746f76ba3a6aaa51"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":670,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:14Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":670,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.836768,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:14Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/6aa49a3a-d331-4325-ab9f-d36b322bc719' closed"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"68c527af9de418705ca4edda6c66b446","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240514,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxNH0.uFLsWvDOmi-qf9V9aB7_L6-nzHy_rzubAPYLp6dBavw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"68c527af9de418705ca4edda6c66b446","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/7f93607e-a283-4d80-af66-1ed4d05c3d08' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ef096652-846d-4051-ac44-84e29f151350","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240514.727667} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"68c527af9de418705ca4edda6c66b446","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b3f60bc6-dc3a-491f-84bb-20038165af7c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240514.7318463} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"68c527af9de418705ca4edda6c66b446","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"79e4d1d4-3381-4956-8ed7-0d2ca317d676","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240514.7406259} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"20f38104-c549-4c34-bfda-a96cfdb6427b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240514.74076} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"68c527af9de418705ca4edda6c66b446","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:14.740595740Z"}]},"request_id":"c0efd39f-9238-4b59-9bf6-b90d79c4d7e8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240514.7688305} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"68c527af9de418705ca4edda6c66b446","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"68c527af9de418705ca4edda6c66b446"} device-1 | {"level":"info","message":"POST /devices? 201 86ms","method":"POST","requestID":"68c527af9de418705ca4edda6c66b446","responseTime":86,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.095","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"68c527af9de418705ca4edda6c66b446"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxNH0.uFLsWvDOmi-qf9V9aB7_L6-nzHy_rzubAPYLp6dBavw","level":"info","message":"auth send jwt","requestID":"e9fbd870ba70605083ecbba341ee22ad"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e9fbd870ba70605083ecbba341ee22ad","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"e9fbd870ba70605083ecbba341ee22ad"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":671,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:14Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":671,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.727779,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:14Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e9fbd870ba70605083ecbba341ee22ad","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240514,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxNH0.uFLsWvDOmi-qf9V9aB7_L6-nzHy_rzubAPYLp6dBavw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e9fbd870ba70605083ecbba341ee22ad","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ceb99280-405f-41cc-9eb6-495d4f2a6886","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240514.7924325} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"e9fbd870ba70605083ecbba341ee22ad","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"70343591-5fcb-45b6-9f96-fba0fad9dc3c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240514.8210926} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"e9fbd870ba70605083ecbba341ee22ad","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"4f645ac9-1094-4f50-b4f5-80ef14bfc5e4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240514.8320158} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"184aa58c-3cb9-40f9-a02b-a7520516dcfb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240514.8321583} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"e9fbd870ba70605083ecbba341ee22ad","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:14.831991467Z"}]},"request_id":"ddada409-8272-4706-ad40-62009ed56f03","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240514.8362556} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e9fbd870ba70605083ecbba341ee22ad","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"e9fbd870ba70605083ecbba341ee22ad"} device-1 | {"level":"info","message":"POST /devices? 201 62ms","method":"POST","requestID":"e9fbd870ba70605083ecbba341ee22ad","responseTime":62,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.066","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e9fbd870ba70605083ecbba341ee22ad"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxNX0.6FCB6D0jN5M75i4GlE-Hm2-BjxsBXnfM99QwD47MOlk","level":"info","message":"auth send jwt","requestID":"8b1decc950b1687052b9075733d90aa0"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8b1decc950b1687052b9075733d90aa0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"8b1decc950b1687052b9075733d90aa0"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":672,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:15Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":672,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.808237,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:15Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8b1decc950b1687052b9075733d90aa0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240515,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxNX0.6FCB6D0jN5M75i4GlE-Hm2-BjxsBXnfM99QwD47MOlk"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8b1decc950b1687052b9075733d90aa0","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:14.831991467Z"}]},"request_id":"ccfdbef9-38f1-4af3-8666-0056c010d6e5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240515.8288121} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"8b1decc950b1687052b9075733d90aa0","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8c31dda7-43ee-4fbb-b76d-033e5d2e1735","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240515.8330612} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"8b1decc950b1687052b9075733d90aa0","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:14.831991467Z"}]},"request_id":"df429e23-4cba-4081-ad69-05b8b325c311","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240515.8817985} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"8b1decc950b1687052b9075733d90aa0","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"8b1decc950b1687052b9075733d90aa0"} device-1 | {"level":"info","message":"PATCH /devices/30c6efa9-1ffd-48c5-b714-894a931c8885 200 87ms","method":"PATCH","requestID":"8b1decc950b1687052b9075733d90aa0","responseTime":87,"status":200,"url":"/devices/30c6efa9-1ffd-48c5-b714-894a931c8885"} gateway-1 | {"time_local":"18/Jun/2025:09:55:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/30c6efa9-1ffd-48c5-b714-894a931c8885 HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.092","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"8b1decc950b1687052b9075733d90aa0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxNX0.6FCB6D0jN5M75i4GlE-Hm2-BjxsBXnfM99QwD47MOlk","level":"info","message":"auth send jwt","requestID":"2d7ddfb6bb0a99a5ae848f0d57149e04"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2d7ddfb6bb0a99a5ae848f0d57149e04","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"2d7ddfb6bb0a99a5ae848f0d57149e04"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":673,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:15Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":673,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.823481,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:15Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2d7ddfb6bb0a99a5ae848f0d57149e04","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240515,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxNX0.6FCB6D0jN5M75i4GlE-Hm2-BjxsBXnfM99QwD47MOlk"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2d7ddfb6bb0a99a5ae848f0d57149e04","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"2d7ddfb6bb0a99a5ae848f0d57149e04"} device-1 | {"level":"info","message":"POST /devices/30c6efa9-1ffd-48c5-b714-894a931c8885/websocket 200 38ms","method":"POST","requestID":"2d7ddfb6bb0a99a5ae848f0d57149e04","responseTime":38,"status":200,"url":"/devices/30c6efa9-1ffd-48c5-b714-894a931c8885/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:55:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/30c6efa9-1ffd-48c5-b714-894a931c8885/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.042","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"2d7ddfb6bb0a99a5ae848f0d57149e04"} device-1 | {"level":"info","message":"device 'http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d730663f18789d8ca79d29f292d56ace","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d730663f18789d8ca79d29f292d56ace","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d730663f18789d8ca79d29f292d56ace"} device-1 | {"level":"info","message":"OPTIONS /devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9/websocket 200 1ms","method":"OPTIONS","requestID":"d730663f18789d8ca79d29f292d56ace","responseTime":1,"status":200,"url":"/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs","level":"info","message":"auth send jwt","requestID":"ecd54259050f1408e4917b62bf940015"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"ecd54259050f1408e4917b62bf940015","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"ecd54259050f1408e4917b62bf940015"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":674,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":674,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.182428,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ecd54259050f1408e4917b62bf940015","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240517,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"ecd54259050f1408e4917b62bf940015","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"ecd54259050f1408e4917b62bf940015"} gateway-1 | {"time_local":"18/Jun/2025:09:55:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.046","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ecd54259050f1408e4917b62bf940015"} device-1 | {"level":"info","message":"POST /devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9/websocket 200 39ms","method":"POST","requestID":"ecd54259050f1408e4917b62bf940015","responseTime":39,"status":200,"url":"/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"66e838eee797ae1d775d79e776962415","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"66e838eee797ae1d775d79e776962415","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"66e838eee797ae1d775d79e776962415"} device-1 | {"level":"info","message":"OPTIONS /devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9? 200 1ms","method":"OPTIONS","requestID":"66e838eee797ae1d775d79e776962415","responseTime":1,"status":200,"url":"/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs","level":"info","message":"auth send jwt","requestID":"3512aa1465f0780a0b2367a992aa94b9"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3512aa1465f0780a0b2367a992aa94b9","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"3512aa1465f0780a0b2367a992aa94b9"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":675,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":675,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.648662,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3512aa1465f0780a0b2367a992aa94b9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240517,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3512aa1465f0780a0b2367a992aa94b9","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:14.740595740Z"}]},"request_id":"7fe00909-5328-4196-a10d-1d60b5918398","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.3092844} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3512aa1465f0780a0b2367a992aa94b9","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"45de937c-ba63-4904-9559-1124c11813f4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.3153813} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"3512aa1465f0780a0b2367a992aa94b9","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:14.740595740Z"}]},"request_id":"6dda37d0-bf53-48c0-9aaa-0270abd9fb27","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.325757} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"3512aa1465f0780a0b2367a992aa94b9","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"3512aa1465f0780a0b2367a992aa94b9"} gateway-1 | {"time_local":"18/Jun/2025:09:55:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.033","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3512aa1465f0780a0b2367a992aa94b9"} device-1 | {"level":"info","message":"PATCH /devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9? 200 29ms","method":"PATCH","requestID":"3512aa1465f0780a0b2367a992aa94b9","responseTime":29,"status":200,"url":"/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs","level":"info","message":"auth send jwt","requestID":"8e96a8551b667089bc98d3c871e966d2"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8e96a8551b667089bc98d3c871e966d2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8e96a8551b667089bc98d3c871e966d2"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":676,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":676,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.996529,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8e96a8551b667089bc98d3c871e966d2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240517,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8e96a8551b667089bc98d3c871e966d2","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:14.740595740Z"}]},"request_id":"18fe0a27-4c0d-45c9-9308-5d0b160e7663","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.3729894} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8e96a8551b667089bc98d3c871e966d2","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8e96a8551b667089bc98d3c871e966d2"} device-1 | {"level":"info","message":"GET /devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9? 200 14ms","method":"GET","requestID":"8e96a8551b667089bc98d3c871e966d2","responseTime":14,"status":200,"url":"/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8e96a8551b667089bc98d3c871e966d2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs","level":"info","message":"auth send jwt","requestID":"9ea336e09906b502c0fd3351cab6370b"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9ea336e09906b502c0fd3351cab6370b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"9ea336e09906b502c0fd3351cab6370b"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":677,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":677,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.746067,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9ea336e09906b502c0fd3351cab6370b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240517,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"9ea336e09906b502c0fd3351cab6370b","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:14.831991467Z"}]},"request_id":"76523ac3-ae39-4e5d-9f26-1fb942996564","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.4151082} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"9ea336e09906b502c0fd3351cab6370b","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"9ea336e09906b502c0fd3351cab6370b"} gateway-1 | {"time_local":"18/Jun/2025:09:55:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/30c6efa9-1ffd-48c5-b714-894a931c8885? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9ea336e09906b502c0fd3351cab6370b"} device-1 | {"level":"info","message":"GET /devices/30c6efa9-1ffd-48c5-b714-894a931c8885? 200 34ms","method":"GET","requestID":"9ea336e09906b502c0fd3351cab6370b","responseTime":34,"status":200,"url":"/devices/30c6efa9-1ffd-48c5-b714-894a931c8885?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs","level":"info","message":"auth send jwt","requestID":"d0e85acb7e1b89fce6d445b08ee858d5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d0e85acb7e1b89fce6d445b08ee858d5","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"d0e85acb7e1b89fce6d445b08ee858d5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":678,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":678,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.878473,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d0e85acb7e1b89fce6d445b08ee858d5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240517,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d0e85acb7e1b89fce6d445b08ee858d5","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272"},"level":"info","message":"Attempting to run experiment","requestID":"d0e85acb7e1b89fce6d445b08ee858d5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272"},"level":"info","message":"Attempting to book experiment","requestID":"d0e85acb7e1b89fce6d445b08ee858d5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272"},"level":"info","message":"Successfully booked experiment","requestID":"d0e85acb7e1b89fce6d445b08ee858d5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"56a9c770-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"56adbf10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":679,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":679,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.908768,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"56a9c770-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240517,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"56a9c770-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:53940","level":"info","msg":"Received request.","req_id":680,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"client_addr":"127.0.0.1:53940","level":"info","msg":"Sent response.","req_id":680,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.728527,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"56adbf10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240517,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"56adbf10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:14.740595740Z"}]},"request_id":"80ad0814-85e5-4d52-94ef-7b33e7efbae8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.5116482} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"56a9c770-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:14.831991467Z"}]},"request_id":"8e2d0e6f-5509-4eb4-bcd2-c3ebdc31e552","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.5152504} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"56a9c770-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"56adbf10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"GET /devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9? 200 37ms","method":"GET","requestID":"56a9c770-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"56adbf10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/30c6efa9-1ffd-48c5-b714-894a931c8885? 200 13ms","method":"GET","requestID":"56adbf10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/30c6efa9-1ffd-48c5-b714-894a931c8885?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272"},"level":"info","message":"Setting up experiment","requestID":"d0e85acb7e1b89fce6d445b08ee858d5"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"d0e85acb7e1b89fce6d445b08ee858d5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"d0e85acb7e1b89fce6d445b08ee858d5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272"},"level":"info","message":"Successfully locked booking for experiment","requestID":"d0e85acb7e1b89fce6d445b08ee858d5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272"},"level":"info","message":"Successfully set up experiment","requestID":"d0e85acb7e1b89fce6d445b08ee858d5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"56b75c00-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"56b7aa20-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272"},"level":"info","message":"Successfully running experiment","requestID":"d0e85acb7e1b89fce6d445b08ee858d5"} authorization-1 | {"client_addr":"127.0.0.1:53940","level":"info","msg":"Received request.","req_id":681,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"client_addr":"127.0.0.1:53940","level":"info","msg":"Sent response.","req_id":681,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.669229,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":682,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"56b75c00-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240517,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"56b75c00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":682,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.628794,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"56b7aa20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240517,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"56b7aa20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:14.740595740Z"}]},"request_id":"96c6811c-5d52-4dba-93fd-1e26295b93fc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.5767057} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"56b75c00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:14.831991467Z"}]},"request_id":"18d91dc5-693c-4493-82dc-b15dcaf88334","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.6015656} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"56b7aa20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"56b75c00-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9? 200 36ms","method":"GET","requestID":"56b75c00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"56b7aa20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb44e0c98-539f-4501-b5d1-a5c2b371d272#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb44e0c98-539f-4501-b5d1-a5c2b371d272","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"1ef4b387-839d-4966-b426-aa42807bcbdc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.6057315} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c084370a-10b6-409f-be1a-a5db76850b1c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.6059358} device-1 | {"level":"info","message":"GET /devices/30c6efa9-1ffd-48c5-b714-894a931c8885? 200 36ms","method":"GET","requestID":"56b7aa20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/30c6efa9-1ffd-48c5-b714-894a931c8885?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 34ms","method":"POST","requestID":"d0e85acb7e1b89fce6d445b08ee858d5","responseTime":34,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"56bd7680-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":683,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"addc9891-f0cf-4488-bd25-cb5436fa2259","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.613545} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":683,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.024908,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:17Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"d0e85acb7e1b89fce6d445b08ee858d5"} gateway-1 | {"time_local":"18/Jun/2025:09:55:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1292","request_time":"0.195","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d0e85acb7e1b89fce6d445b08ee858d5"} experiment-1 | {"level":"info","message":"POST /experiments? 201 192ms","method":"POST","requestID":"d0e85acb7e1b89fce6d445b08ee858d5","responseTime":192,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"56bd7680-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"56bd7680-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"56bd7680-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9/signaling 200 10ms","method":"POST","requestID":"56bd7680-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs","level":"info","message":"auth send jwt","requestID":"3fd276799dd251bf6d6aa3cb7ccf162f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3fd276799dd251bf6d6aa3cb7ccf162f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3fd276799dd251bf6d6aa3cb7ccf162f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"56bf4b40-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":684,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":684,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.007581,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"client_addr":"127.0.0.1:53940","level":"info","msg":"Received request.","req_id":685,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3fd276799dd251bf6d6aa3cb7ccf162f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240517,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3fd276799dd251bf6d6aa3cb7ccf162f","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"82162b72-7221-4d09-abd0-eab32fef7572","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.624732} authorization-1 | {"client_addr":"127.0.0.1:53940","level":"info","msg":"Sent response.","req_id":685,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.649161,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"56bf4b40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"56bf4b40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:14.740595740Z"}]},"request_id":"424a7a94-2918-4547-8d92-ad55aa670003","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.6524358} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"56bf4b40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/30c6efa9-1ffd-48c5-b714-894a931c8885/signaling 200 33ms","method":"POST","requestID":"56bf4b40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/30c6efa9-1ffd-48c5-b714-894a931c8885/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3fd276799dd251bf6d6aa3cb7ccf162f","responseTime":2,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"d0e85acb7e1b89fce6d445b08ee858d5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"56c4a270-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"56c4c980-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3fd276799dd251bf6d6aa3cb7ccf162f"} gateway-1 | {"time_local":"18/Jun/2025:09:55:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3fd276799dd251bf6d6aa3cb7ccf162f"} device-1 | {"level":"info","message":"GET /devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9? 200 38ms","method":"GET","requestID":"3fd276799dd251bf6d6aa3cb7ccf162f","responseTime":38,"status":200,"url":"/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9?"} authorization-1 | {"client_addr":"127.0.0.1:53940","level":"info","msg":"Received request.","req_id":686,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"client_addr":"127.0.0.1:53940","level":"info","msg":"Sent response.","req_id":686,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.772938,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":687,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"56c4a270-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240517,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"56c4a270-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":687,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.600409,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"56c4c980-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240517,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"56c4c980-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs","level":"info","message":"auth send jwt","requestID":"7e5ba77774b09f9d847d2f706c8c551f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7e5ba77774b09f9d847d2f706c8c551f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7e5ba77774b09f9d847d2f706c8c551f"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:14.740595740Z"}]},"request_id":"40731384-413a-49cb-b618-784d3fa6ab61","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.663615} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:14.831991467Z"}]},"request_id":"b4cafbd8-7ac1-422c-a178-3d85ecb804a0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.6646585} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"56c4a270-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"56c4c980-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":688,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":688,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.68851,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7e5ba77774b09f9d847d2f706c8c551f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240517,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7e5ba77774b09f9d847d2f706c8c551f","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"56c4a270-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:14.831991467Z"}]},"request_id":"48fd99da-cec2-4b2a-98ef-78422949b0ee","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.6703527} device-1 | {"level":"info","message":"GET /devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9? 200 15ms","method":"GET","requestID":"56c4a270-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":15,"status":200,"url":"/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"56c4c980-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"7e5ba77774b09f9d847d2f706c8c551f","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"GET /devices/30c6efa9-1ffd-48c5-b714-894a931c8885? 200 15ms","method":"GET","requestID":"56c4c980-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":15,"status":200,"url":"/devices/30c6efa9-1ffd-48c5-b714-894a931c8885?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272"},"level":"info","message":"Building connection plan","requestID":"d0e85acb7e1b89fce6d445b08ee858d5"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"958acb73-d8eb-4b9b-9663-cb3103a39938"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"7ddee286-f164-4e60-aea0-c5cdd270c0fe"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"07983101-6166-48cb-b854-7a225deda271"}]},"level":"info","message":"Built pairwise service configurations","requestID":"d0e85acb7e1b89fce6d445b08ee858d5"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"d0e85acb7e1b89fce6d445b08ee858d5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7e5ba77774b09f9d847d2f706c8c551f"} gateway-1 | {"time_local":"18/Jun/2025:09:55:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/30c6efa9-1ffd-48c5-b714-894a931c8885? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7e5ba77774b09f9d847d2f706c8c551f"} device-1 | {"level":"info","message":"GET /devices/30c6efa9-1ffd-48c5-b714-894a931c8885? 200 36ms","method":"GET","requestID":"7e5ba77774b09f9d847d2f706c8c551f","responseTime":36,"status":200,"url":"/devices/30c6efa9-1ffd-48c5-b714-894a931c8885?"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"56cb5930-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":689,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":689,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.641014,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"56cb5930-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240517,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxN30.Xz-UwB1KIuPRYChiujSLmHe8eJxc6eCGM8oE1UdnOTs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"56cb5930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"8ce1e80a-0df2-440c-9f23-96ff069ba653","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.7092412} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c2ca157b-599a-4ebc-8ee7-e153b6da1b65","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.7096038} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"56cb5930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"56cb5930-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"56cb5930-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/0e8ed236-c1d0-478d-9355-827e93a7c8a0'","requestID":"56cb5930-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/0e8ed236-c1d0-478d-9355-827e93a7c8a0'","requestID":"56cb5930-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"56cb5930-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 49ms","method":"POST","requestID":"56cb5930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":49,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"56cb5930-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"device":"d2071a82-5ed2-4ec4-b911-7d4a17573ff9","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"d2071a82-5ed2-4ec4-b911-7d4a17573ff9","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"d0e85acb7e1b89fce6d445b08ee858d5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"56dc2210-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":690,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"00c8ea2f-1e4d-4bf2-b7c1-c348a14ab2a4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.8137734} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":690,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.91511,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"56dc2210-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"56dc2210-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"56dc2210-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9/signaling 200 9ms","method":"POST","requestID":"56dc2210-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"56e17940-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":691,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c5fdad62-c048-4c3e-990a-6a32ef70070e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240517.8485236} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":691,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.13094,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"56e17940-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"56e17940-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"56e17940-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/30c6efa9-1ffd-48c5-b714-894a931c8885/signaling 200 8ms","method":"POST","requestID":"56e17940-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/30c6efa9-1ffd-48c5-b714-894a931c8885/signaling"} device-1 | {"device":"30c6efa9-1ffd-48c5-b714-894a931c8885","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"0e8ed236-c1d0-478d-9355-827e93a7c8a0","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"content":{"sdp":"v=0\r\no=- 8958077230675084279 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=msid-semantic: WMS\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:vZCi\r\na=ice-pwd:xJErIwZ86zmzs9vnYDrkzS23\r\na=ice-options:trickle\r\na=fingerprint:sha-256 CC:55:6F:88:A8:2D:1C:AE:B9:A6:BE:A3:9E:61:8B:75:08:A8:F0:85:A2:74:4D:04:E9:10:06:78:88:34:E9:1D\r\na=setup:active\r\na=mid:0\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n","type":"answer"},"device":"d2071a82-5ed2-4ec4-b911-7d4a17573ff9","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"device":"d2071a82-5ed2-4ec4-b911-7d4a17573ff9","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"content":{"candidate":"candidate:2912034437 1 udp 2113937151 853da474-573e-4331-ba1a-7de4d057dba6.local 37745 typ host generation 0 ufrag vZCi network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"d2071a82-5ed2-4ec4-b911-7d4a17573ff9","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/0e8ed236-c1d0-478d-9355-827e93a7c8a0' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0e8ed236-c1d0-478d-9355-827e93a7c8a0","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"30c6efa9-1ffd-48c5-b714-894a931c8885","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"30c6efa9-1ffd-48c5-b714-894a931c8885","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"30c6efa9-1ffd-48c5-b714-894a931c8885","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"content":{"candidate":"candidate:1052360598 1 udp 1677729535 141.24.211.56 37745 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag vZCi network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"d2071a82-5ed2-4ec4-b911-7d4a17573ff9","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"d2071a82-5ed2-4ec4-b911-7d4a17573ff9","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8194409d9612b3f1f16a7c35c1e48c5a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8194409d9612b3f1f16a7c35c1e48c5a","responseTime":1,"status":200,"url":"/auth"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9'"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/0e8ed236-c1d0-478d-9355-827e93a7c8a0"}}},"level":"info","message":"received a callback","requestID":"8194409d9612b3f1f16a7c35c1e48c5a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"8194409d9612b3f1f16a7c35c1e48c5a","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"8194409d9612b3f1f16a7c35c1e48c5a"} device-1 | {"device":"30c6efa9-1ffd-48c5-b714-894a931c8885","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"0e8ed236-c1d0-478d-9355-827e93a7c8a0","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"d2071a82-5ed2-4ec4-b911-7d4a17573ff9","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"30c6efa9-1ffd-48c5-b714-894a931c8885","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"d2071a82-5ed2-4ec4-b911-7d4a17573ff9","deviceName":"JS Device 1","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"0e8ed236-c1d0-478d-9355-827e93a7c8a0","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/0e8ed236-c1d0-478d-9355-827e93a7c8a0' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0e8ed236-c1d0-478d-9355-827e93a7c8a0","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ee18d7cbc63f35d056dd7b47fa7e759a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ee18d7cbc63f35d056dd7b47fa7e759a","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/0e8ed236-c1d0-478d-9355-827e93a7c8a0"}}},"level":"info","message":"received a callback","requestID":"ee18d7cbc63f35d056dd7b47fa7e759a"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"5812f460-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":692,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:19Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0e8ed236-c1d0-478d-9355-827e93a7c8a0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"decaffa9-f58f-42df-b99a-d825772c5720","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240519.850049} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":692,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.078855,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/0e8ed236-c1d0-478d-9355-827e93a7c8a0","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5812f460-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/0e8ed236-c1d0-478d-9355-827e93a7c8a0","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5812f460-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"5812f460-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/0e8ed236-c1d0-478d-9355-827e93a7c8a0 200 7ms","method":"GET","requestID":"5812f460-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/peerconnections/0e8ed236-c1d0-478d-9355-827e93a7c8a0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 31ms","method":"POST","requestID":"ee18d7cbc63f35d056dd7b47fa7e759a","responseTime":31,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"ee18d7cbc63f35d056dd7b47fa7e759a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"58171310-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":693,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:19Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"12ec7faa-8b1e-494b-be6e-e9151c9db436","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240519.877258} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":693,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.067866,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"58171310-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"58171310-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"58171310-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9/signaling 200 32ms","method":"POST","requestID":"58171310-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"581c4330-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":694,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:19Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ea23a279-260f-4c67-a804-426bade7c5d0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240519.912722} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":694,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.46365,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"581c4330-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"581c4330-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"581c4330-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/30c6efa9-1ffd-48c5-b714-894a931c8885/signaling 200 10ms","method":"POST","requestID":"581c4330-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/30c6efa9-1ffd-48c5-b714-894a931c8885/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxOX0.48L5D4KRntB5V9uxRHqELRwq_0Vt5BlkB3cveQ3WhBs","level":"info","message":"auth send jwt","requestID":"ce3c92e45e15743ddf88939484b5c20b"} authentication-1 | {"level":"info","message":"GET /auth 200 23ms","method":"GET","requestID":"ce3c92e45e15743ddf88939484b5c20b","responseTime":23,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272","requestID":"ce3c92e45e15743ddf88939484b5c20b"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":695,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:19Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":695,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.871861,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ce3c92e45e15743ddf88939484b5c20b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240519,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxOX0.48L5D4KRntB5V9uxRHqELRwq_0Vt5BlkB3cveQ3WhBs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"ce3c92e45e15743ddf88939484b5c20b","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272","requestID":"ce3c92e45e15743ddf88939484b5c20b"} gateway-1 | {"time_local":"18/Jun/2025:09:55:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272 HTTP/1.1","status": "200","body_bytes_sent":"1365","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ce3c92e45e15743ddf88939484b5c20b"} experiment-1 | {"level":"info","message":"GET /experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272 200 12ms","method":"GET","requestID":"ce3c92e45e15743ddf88939484b5c20b","responseTime":12,"status":200,"url":"/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxOX0.48L5D4KRntB5V9uxRHqELRwq_0Vt5BlkB3cveQ3WhBs","level":"info","message":"auth send jwt","requestID":"dff811e96f12a1c9cf969ef3d4a55dde"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"dff811e96f12a1c9cf969ef3d4a55dde","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272","requestID":"dff811e96f12a1c9cf969ef3d4a55dde"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":696,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:19Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":696,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.71207,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:19Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"dff811e96f12a1c9cf969ef3d4a55dde","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240519,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxOX0.48L5D4KRntB5V9uxRHqELRwq_0Vt5BlkB3cveQ3WhBs"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"dff811e96f12a1c9cf969ef3d4a55dde","responseTime":29,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272"},"level":"info","message":"Attempting to finish experiment","requestID":"dff811e96f12a1c9cf969ef3d4a55dde"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"582b5e60-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":697,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:20Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":697,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.783662,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:20Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/0e8ed236-c1d0-478d-9355-827e93a7c8a0","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"582b5e60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/0e8ed236-c1d0-478d-9355-827e93a7c8a0","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240519,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUxOX0.48L5D4KRntB5V9uxRHqELRwq_0Vt5BlkB3cveQ3WhBs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"582b5e60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/0e8ed236-c1d0-478d-9355-827e93a7c8a0","device":"d2071a82-5ed2-4ec4-b911-7d4a17573ff9","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"30c6efa9-1ffd-48c5-b714-894a931c8885","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"30c6efa9-1ffd-48c5-b714-894a931c8885","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"30c6efa9-1ffd-48c5-b714-894a931c8885","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/0e8ed236-c1d0-478d-9355-827e93a7c8a0' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/0e8ed236-c1d0-478d-9355-827e93a7c8a0' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0e8ed236-c1d0-478d-9355-827e93a7c8a0","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0e8ed236-c1d0-478d-9355-827e93a7c8a0': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0e8ed236-c1d0-478d-9355-827e93a7c8a0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"9cdb91ba-c505-43e7-99a5-a8546f26d366","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240520.0271351} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"257eb472-a729-4127-925a-bb91837c93c0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240520.0272171} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"582b5e60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0a8ed1fac09f9f74bee0394749aefdfc","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0a8ed1fac09f9f74bee0394749aefdfc","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/0e8ed236-c1d0-478d-9355-827e93a7c8a0"}}},"level":"info","message":"received a callback","requestID":"0a8ed1fac09f9f74bee0394749aefdfc"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"5298266f09c43786fda6ca64dea12bb3","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5298266f09c43786fda6ca64dea12bb3","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"582b5e60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/0e8ed236-c1d0-478d-9355-827e93a7c8a0 204 53ms","method":"DELETE","requestID":"582b5e60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":54,"status":204,"url":"/peerconnections/0e8ed236-c1d0-478d-9355-827e93a7c8a0"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/0e8ed236-c1d0-478d-9355-827e93a7c8a0"}}},"level":"info","message":"received a callback","requestID":"5298266f09c43786fda6ca64dea12bb3"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272"},"level":"info","message":"Successfully finished experiment","requestID":"dff811e96f12a1c9cf969ef3d4a55dde"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9'"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"583a7990-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":698,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:20Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd2071a82-5ed2-4ec4-b911-7d4a17573ff9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"92cc0510-a6da-4749-acdc-3330e9372ad7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240520.108941} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":698,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.288507,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"583a7990-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"583a7990-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"583a7990-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9/signaling 200 9ms","method":"POST","requestID":"583a7990-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb44e0c98-539f-4501-b5d1-a5c2b371d272': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb44e0c98-539f-4501-b5d1-a5c2b371d272","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"4e78fd77-8b03-4642-9a7a-072ba78c1efa","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240520.1177592} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"35e5787e-513d-4c38-aaf8-3ac96ffa6c2e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240520.1180878} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"583c4e50-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","method":"POST","requestID":"dff811e96f12a1c9cf969ef3d4a55dde","responseTime":17,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":699,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:20Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F30c6efa9-1ffd-48c5-b714-894a931c8885","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2072aee8-77e1-4a48-bfb4-cd1e7aee93b1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240520.1484873} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":699,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.419545,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"583c4e50-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"583c4e50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"583c4e50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/30c6efa9-1ffd-48c5-b714-894a931c8885/signaling 200 39ms","method":"POST","requestID":"583c4e50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":200,"url":"/devices/30c6efa9-1ffd-48c5-b714-894a931c8885/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272","requestID":"dff811e96f12a1c9cf969ef3d4a55dde"} gateway-1 | {"time_local":"18/Jun/2025:09:55:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.250","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dff811e96f12a1c9cf969ef3d4a55dde"} experiment-1 | {"level":"info","message":"DELETE /experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272 204 248ms","method":"DELETE","requestID":"dff811e96f12a1c9cf969ef3d4a55dde","responseTime":248,"status":204,"url":"/experiments/b44e0c98-539f-4501-b5d1-a5c2b371d272"} gateway-1 | {"time_local":"18/Jun/2025:09:55:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3196","request_time":"4.291","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"415c9a9fdaf4687efbdde08f02c0ee9a"} gateway-1 | {"time_local":"18/Jun/2025:09:55:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.167","http_referrer":"","http_user_agent":"node-fetch","requestID":"0a8ed1fac09f9f74bee0394749aefdfc"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 165ms","method":"POST","requestID":"0a8ed1fac09f9f74bee0394749aefdfc","responseTime":165,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMH0.Z-jcOGM0psUSE0CEotWcr8tQdXuw4hyCjMDMeP4XhV8","level":"info","message":"auth send jwt","requestID":"c8088f7c79e7eb22c20fc95169241d6a"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c8088f7c79e7eb22c20fc95169241d6a","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 165ms","method":"POST","requestID":"5298266f09c43786fda6ca64dea12bb3","responseTime":165,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.168","http_referrer":"","http_user_agent":"node-fetch","requestID":"5298266f09c43786fda6ca64dea12bb3"} device-1 | {"level":"info","message":"postDevices called","requestID":"c8088f7c79e7eb22c20fc95169241d6a"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":700,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:20Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":700,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.918291,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c8088f7c79e7eb22c20fc95169241d6a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240520,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMH0.Z-jcOGM0psUSE0CEotWcr8tQdXuw4hyCjMDMeP4XhV8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"c8088f7c79e7eb22c20fc95169241d6a","responseTime":4,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:55:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3445","request_time":"2.976","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d422e7a90d7efa124789aabda1f4a59e"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/30c6efa9-1ffd-48c5-b714-894a931c8885' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"c05f0617-b8db-4ec9-8c77-94b56bd60a3b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240520.25005} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c8088f7c79e7eb22c20fc95169241d6a","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"679d97f2-8237-4ea1-bc51-38397781f060","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240520.2549396} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d2071a82-5ed2-4ec4-b911-7d4a17573ff9' closed"} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"c8088f7c79e7eb22c20fc95169241d6a","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"c084bc43-f112-4c06-a6ab-9ab00770cb7d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240520.2659447} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"be332c2c-cfa6-42e3-a5f7-44155c0ed178","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240520.2661717} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"c8088f7c79e7eb22c20fc95169241d6a","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:20.265921218Z"}]},"request_id":"2b5215c7-f0ee-4539-bb7a-6c6195815a9e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240520.2712007} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c8088f7c79e7eb22c20fc95169241d6a","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"c8088f7c79e7eb22c20fc95169241d6a"} gateway-1 | {"time_local":"18/Jun/2025:09:55:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c8088f7c79e7eb22c20fc95169241d6a"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"c8088f7c79e7eb22c20fc95169241d6a","responseTime":48,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMH0.Z-jcOGM0psUSE0CEotWcr8tQdXuw4hyCjMDMeP4XhV8","level":"info","message":"auth send jwt","requestID":"d05c74affdf863c6be9be7eb2c28d9d3"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d05c74affdf863c6be9be7eb2c28d9d3","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"d05c74affdf863c6be9be7eb2c28d9d3"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":701,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:20Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":701,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.70719,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d05c74affdf863c6be9be7eb2c28d9d3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240520,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMH0.Z-jcOGM0psUSE0CEotWcr8tQdXuw4hyCjMDMeP4XhV8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d05c74affdf863c6be9be7eb2c28d9d3","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e94d155d-6623-456a-baa9-1c360e0abaf6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240520.2939897} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d05c74affdf863c6be9be7eb2c28d9d3","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"46793909-bf87-4750-aa0a-d55b422b4e5f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240520.2990718} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"d05c74affdf863c6be9be7eb2c28d9d3","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"6f6bf01e-dcc1-46b7-910a-df5bd91d9940","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240520.308353} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e6683cfe-3939-48ed-8893-0827f8a8840c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240520.3084788} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"d05c74affdf863c6be9be7eb2c28d9d3","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:20.308321428Z"}]},"request_id":"769cc2cb-d857-453a-99dd-9b5dcfd1631b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240520.3128774} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d05c74affdf863c6be9be7eb2c28d9d3","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"d05c74affdf863c6be9be7eb2c28d9d3"} gateway-1 | {"time_local":"18/Jun/2025:09:55:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d05c74affdf863c6be9be7eb2c28d9d3"} device-1 | {"level":"info","message":"POST /devices? 201 37ms","method":"POST","requestID":"d05c74affdf863c6be9be7eb2c28d9d3","responseTime":37,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMX0.VfGKu_GNSGNgMuP8oCAiWW3sw_Sjblgxjtp2woB6FYU","level":"info","message":"auth send jwt","requestID":"c152482be915db7645c876a1eb622d68"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c152482be915db7645c876a1eb622d68","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"c152482be915db7645c876a1eb622d68"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":702,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:21Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":702,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.694248,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c152482be915db7645c876a1eb622d68","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240521,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMX0.VfGKu_GNSGNgMuP8oCAiWW3sw_Sjblgxjtp2woB6FYU"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"c152482be915db7645c876a1eb622d68","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:20.265921218Z"}]},"request_id":"c4c9bc2e-39a2-4ac5-856d-f3ff947728c1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240521.2578585} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c152482be915db7645c876a1eb622d68","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9284d9ea-5e2e-4b74-b39b-cfdf9575d727","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240521.2626786} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"c152482be915db7645c876a1eb622d68","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:20.265921218Z"}]},"request_id":"9c680a2e-c255-49ba-9840-fb38822bbd89","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240521.3034775} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c152482be915db7645c876a1eb622d68","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"c152482be915db7645c876a1eb622d68"} gateway-1 | {"time_local":"18/Jun/2025:09:55:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/83497da5-213a-4cc8-b73b-c9957c8c4af3 HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.088","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"c152482be915db7645c876a1eb622d68"} device-1 | {"level":"info","message":"PATCH /devices/83497da5-213a-4cc8-b73b-c9957c8c4af3 200 84ms","method":"PATCH","requestID":"c152482be915db7645c876a1eb622d68","responseTime":84,"status":200,"url":"/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMX0.VfGKu_GNSGNgMuP8oCAiWW3sw_Sjblgxjtp2woB6FYU","level":"info","message":"auth send jwt","requestID":"872bbbcf4ee9e1827e394adc4738246a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"872bbbcf4ee9e1827e394adc4738246a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"872bbbcf4ee9e1827e394adc4738246a"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":703,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:21Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":703,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.717592,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"872bbbcf4ee9e1827e394adc4738246a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240521,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMX0.VfGKu_GNSGNgMuP8oCAiWW3sw_Sjblgxjtp2woB6FYU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"872bbbcf4ee9e1827e394adc4738246a","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"872bbbcf4ee9e1827e394adc4738246a"} gateway-1 | {"time_local":"18/Jun/2025:09:55:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/83497da5-213a-4cc8-b73b-c9957c8c4af3/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.044","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"872bbbcf4ee9e1827e394adc4738246a"} device-1 | {"level":"info","message":"POST /devices/83497da5-213a-4cc8-b73b-c9957c8c4af3/websocket 200 40ms","method":"POST","requestID":"872bbbcf4ee9e1827e394adc4738246a","responseTime":40,"status":200,"url":"/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f55881a8d2dd1ea6cd94be57cfacbbca","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"f55881a8d2dd1ea6cd94be57cfacbbca","responseTime":0,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/d70bb8bc-1879-4f09-8e94-4837a459b70a/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f55881a8d2dd1ea6cd94be57cfacbbca"} device-1 | {"level":"info","message":"OPTIONS /devices/d70bb8bc-1879-4f09-8e94-4837a459b70a/websocket 200 1ms","method":"OPTIONS","requestID":"f55881a8d2dd1ea6cd94be57cfacbbca","responseTime":1,"status":200,"url":"/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMn0.RSqxR4p7B9lms_k2a55WYHx1Bj73ypm69dx1Mbt9tS0","level":"info","message":"auth send jwt","requestID":"7e926899e5d02808e26e245307b68216"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7e926899e5d02808e26e245307b68216","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"7e926899e5d02808e26e245307b68216"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":704,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:22Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":704,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.742033,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:22Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7e926899e5d02808e26e245307b68216","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240522,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMn0.RSqxR4p7B9lms_k2a55WYHx1Bj73ypm69dx1Mbt9tS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7e926899e5d02808e26e245307b68216","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"7e926899e5d02808e26e245307b68216"} device-1 | {"level":"info","message":"POST /devices/d70bb8bc-1879-4f09-8e94-4837a459b70a/websocket 200 28ms","method":"POST","requestID":"7e926899e5d02808e26e245307b68216","responseTime":28,"status":200,"url":"/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:55:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d70bb8bc-1879-4f09-8e94-4837a459b70a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.032","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7e926899e5d02808e26e245307b68216"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"77917e78e609579e49c53eadcda4b59b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"77917e78e609579e49c53eadcda4b59b","responseTime":0,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/d70bb8bc-1879-4f09-8e94-4837a459b70a? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"77917e78e609579e49c53eadcda4b59b"} device-1 | {"level":"info","message":"OPTIONS /devices/d70bb8bc-1879-4f09-8e94-4837a459b70a? 200 1ms","method":"OPTIONS","requestID":"77917e78e609579e49c53eadcda4b59b","responseTime":1,"status":200,"url":"/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMn0.RSqxR4p7B9lms_k2a55WYHx1Bj73ypm69dx1Mbt9tS0","level":"info","message":"auth send jwt","requestID":"6b9adc76bd931d1c4bfb831a4a95137f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6b9adc76bd931d1c4bfb831a4a95137f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"6b9adc76bd931d1c4bfb831a4a95137f"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":705,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:22Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":705,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.649124,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:22Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b9adc76bd931d1c4bfb831a4a95137f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240522,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMn0.RSqxR4p7B9lms_k2a55WYHx1Bj73ypm69dx1Mbt9tS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6b9adc76bd931d1c4bfb831a4a95137f","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:20.308321428Z"}]},"request_id":"c93aa9d7-cebf-4f41-b4e1-2112530c1891","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240522.7975345} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6b9adc76bd931d1c4bfb831a4a95137f","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b6de2f34-1951-464b-abe0-4ad722ccf227","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240522.8021379} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"6b9adc76bd931d1c4bfb831a4a95137f","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:20.308321428Z"}]},"request_id":"25ee4e98-2a8c-4abb-8891-df26a2ce4261","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240522.8352304} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6b9adc76bd931d1c4bfb831a4a95137f","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"6b9adc76bd931d1c4bfb831a4a95137f"} gateway-1 | {"time_local":"18/Jun/2025:09:55:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d70bb8bc-1879-4f09-8e94-4837a459b70a? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.077","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6b9adc76bd931d1c4bfb831a4a95137f"} device-1 | {"level":"info","message":"PATCH /devices/d70bb8bc-1879-4f09-8e94-4837a459b70a? 200 49ms","method":"PATCH","requestID":"6b9adc76bd931d1c4bfb831a4a95137f","responseTime":49,"status":200,"url":"/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMn0.RSqxR4p7B9lms_k2a55WYHx1Bj73ypm69dx1Mbt9tS0","level":"info","message":"auth send jwt","requestID":"b93c99e8ecda1f71caec4e4c467dc472"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b93c99e8ecda1f71caec4e4c467dc472","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"b93c99e8ecda1f71caec4e4c467dc472"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":706,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:22Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":706,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.791449,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b93c99e8ecda1f71caec4e4c467dc472","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240522,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMn0.RSqxR4p7B9lms_k2a55WYHx1Bj73ypm69dx1Mbt9tS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b93c99e8ecda1f71caec4e4c467dc472","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:20.265921218Z"}]},"request_id":"bceab56a-3e3d-4e8d-a642-d33e675e80ac","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240522.8528295} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b93c99e8ecda1f71caec4e4c467dc472","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"b93c99e8ecda1f71caec4e4c467dc472"} gateway-1 | {"time_local":"18/Jun/2025:09:55:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/83497da5-213a-4cc8-b73b-c9957c8c4af3? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b93c99e8ecda1f71caec4e4c467dc472"} device-1 | {"level":"info","message":"GET /devices/83497da5-213a-4cc8-b73b-c9957c8c4af3? 200 11ms","method":"GET","requestID":"b93c99e8ecda1f71caec4e4c467dc472","responseTime":11,"status":200,"url":"/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMn0.RSqxR4p7B9lms_k2a55WYHx1Bj73ypm69dx1Mbt9tS0","level":"info","message":"auth send jwt","requestID":"306ea38588b821013ba21c45a07873c6"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"306ea38588b821013ba21c45a07873c6","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"306ea38588b821013ba21c45a07873c6"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":707,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:22Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":707,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.738875,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"306ea38588b821013ba21c45a07873c6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240522,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMn0.RSqxR4p7B9lms_k2a55WYHx1Bj73ypm69dx1Mbt9tS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"306ea38588b821013ba21c45a07873c6","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:20.308321428Z"}]},"request_id":"e180855a-9093-4c65-aa42-69c4b327bdf3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240522.8918827} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"306ea38588b821013ba21c45a07873c6","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"306ea38588b821013ba21c45a07873c6"} device-1 | {"level":"info","message":"GET /devices/d70bb8bc-1879-4f09-8e94-4837a459b70a? 200 11ms","method":"GET","requestID":"306ea38588b821013ba21c45a07873c6","responseTime":11,"status":200,"url":"/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d70bb8bc-1879-4f09-8e94-4837a459b70a? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"306ea38588b821013ba21c45a07873c6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMn0.RSqxR4p7B9lms_k2a55WYHx1Bj73ypm69dx1Mbt9tS0","level":"info","message":"auth send jwt","requestID":"7b7322819d2f112907d9f0df2748c967"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7b7322819d2f112907d9f0df2748c967","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"7b7322819d2f112907d9f0df2748c967"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":708,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:22Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":708,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.724694,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7b7322819d2f112907d9f0df2748c967","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240522,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMn0.RSqxR4p7B9lms_k2a55WYHx1Bj73ypm69dx1Mbt9tS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7b7322819d2f112907d9f0df2748c967","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95"},"level":"info","message":"Attempting to run experiment","requestID":"7b7322819d2f112907d9f0df2748c967"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95"},"level":"info","message":"Attempting to book experiment","requestID":"7b7322819d2f112907d9f0df2748c967"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95"},"level":"info","message":"Successfully booked experiment","requestID":"7b7322819d2f112907d9f0df2748c967"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"59f19f70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"59f1ed90-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":709,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:22Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":709,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.588795,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"59f19f70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240522,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMn0.RSqxR4p7B9lms_k2a55WYHx1Bj73ypm69dx1Mbt9tS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"59f19f70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":710,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:22Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":710,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.357737,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"59f1ed90-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240522,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMn0.RSqxR4p7B9lms_k2a55WYHx1Bj73ypm69dx1Mbt9tS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"59f1ed90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:20.265921218Z"}]},"request_id":"b346371e-7de5-4f09-a2e0-1a33fae0e7d6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240522.9910488} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"59f19f70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:20.308321428Z"}]},"request_id":"f6d76793-dc9e-45a1-a405-5f2cffe20077","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240522.9943733} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"59f1ed90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"59f19f70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/83497da5-213a-4cc8-b73b-c9957c8c4af3? 200 15ms","method":"GET","requestID":"59f19f70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":15,"status":200,"url":"/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"59f1ed90-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/d70bb8bc-1879-4f09-8e94-4837a459b70a? 200 14ms","method":"GET","requestID":"59f1ed90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95"},"level":"info","message":"Setting up experiment","requestID":"7b7322819d2f112907d9f0df2748c967"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"7b7322819d2f112907d9f0df2748c967"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"7b7322819d2f112907d9f0df2748c967"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95"},"level":"info","message":"Successfully locked booking for experiment","requestID":"7b7322819d2f112907d9f0df2748c967"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95"},"level":"info","message":"Successfully set up experiment","requestID":"7b7322819d2f112907d9f0df2748c967"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"59fb6370-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"59fb8a80-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95"},"level":"info","message":"Successfully running experiment","requestID":"7b7322819d2f112907d9f0df2748c967"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":711,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":711,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.744464,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":712,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"59fb6370-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240522,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMn0.RSqxR4p7B9lms_k2a55WYHx1Bj73ypm69dx1Mbt9tS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"59fb6370-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":712,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.868024,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"59fb8a80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240522,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMn0.RSqxR4p7B9lms_k2a55WYHx1Bj73ypm69dx1Mbt9tS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"59fb8a80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:20.265921218Z"}]},"request_id":"f64c2e8a-3bdf-4f28-90db-934994bc3dad","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240523.0812206} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"59fb6370-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:20.308321428Z"}]},"request_id":"ce686425-39ed-4c50-8062-b0fa542bbc24","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240523.0819578} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"59fb8a80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"59fb6370-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1af3b9b9-908a-4476-bc66-3198d9de6a95#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1af3b9b9-908a-4476-bc66-3198d9de6a95","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"b943a028-734a-4527-b127-96bab2b33453","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240523.0865855} device-1 | {"level":"info","message":"GET /devices/83497da5-213a-4cc8-b73b-c9957c8c4af3? 200 40ms","method":"GET","requestID":"59fb6370-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":40,"status":200,"url":"/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"59fb8a80-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5e22b2b7-10e3-488e-aff8-ea5990d0f332","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240523.0869477} device-1 | {"level":"info","message":"GET /devices/d70bb8bc-1879-4f09-8e94-4837a459b70a? 200 40ms","method":"GET","requestID":"59fb8a80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":40,"status":200,"url":"/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"7b7322819d2f112907d9f0df2748c967","responseTime":12,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5a01f320-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":713,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:23Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"7b7322819d2f112907d9f0df2748c967"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c3fcee49-3b54-4ce6-9813-fb06f2cf9050","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240523.0947807} gateway-1 | {"time_local":"18/Jun/2025:09:55:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1292","request_time":"0.199","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7b7322819d2f112907d9f0df2748c967"} experiment-1 | {"level":"info","message":"POST /experiments? 201 195ms","method":"POST","requestID":"7b7322819d2f112907d9f0df2748c967","responseTime":195,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":713,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":28.955973,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5a01f320-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 32ms","method":"POST","requestID":"5a01f320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyM30.rQ7RSV6keLuD5mZv2H_LtdeTy7RnaPLkE9MIKSQpJtQ","level":"info","message":"auth send jwt","requestID":"c02c07df7612a7139a1e388c87cf75f3"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c02c07df7612a7139a1e388c87cf75f3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5a01f320-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/83497da5-213a-4cc8-b73b-c9957c8c4af3/signaling 200 36ms","method":"POST","requestID":"5a01f320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"c02c07df7612a7139a1e388c87cf75f3"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5a07e690-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":714,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":714,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.954358,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":715,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c02c07df7612a7139a1e388c87cf75f3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240523,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyM30.rQ7RSV6keLuD5mZv2H_LtdeTy7RnaPLkE9MIKSQpJtQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"c02c07df7612a7139a1e388c87cf75f3","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"35bf8879-0c6d-45e4-af5b-8fcdbc16627a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240523.1335897} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":715,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.094005,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5a07e690-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"5a07e690-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:20.265921218Z"}]},"request_id":"1766a152-945f-4e4c-8369-38105aa5d8d8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240523.1357155} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c02c07df7612a7139a1e388c87cf75f3","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5a07e690-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d70bb8bc-1879-4f09-8e94-4837a459b70a/signaling 200 11ms","method":"POST","requestID":"5a07e690-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"c02c07df7612a7139a1e388c87cf75f3"} device-1 | {"level":"info","message":"GET /devices/83497da5-213a-4cc8-b73b-c9957c8c4af3? 200 14ms","method":"GET","requestID":"c02c07df7612a7139a1e388c87cf75f3","responseTime":14,"status":200,"url":"/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"7b7322819d2f112907d9f0df2748c967"} gateway-1 | {"time_local":"18/Jun/2025:09:55:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/83497da5-213a-4cc8-b73b-c9957c8c4af3? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c02c07df7612a7139a1e388c87cf75f3"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5a09e260-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5a0a0970-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyM30.rQ7RSV6keLuD5mZv2H_LtdeTy7RnaPLkE9MIKSQpJtQ","level":"info","message":"auth send jwt","requestID":"68bdebe48ab064f967de5f4d3d731467"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"68bdebe48ab064f967de5f4d3d731467","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"68bdebe48ab064f967de5f4d3d731467"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":716,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":716,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.681245,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Received request.","req_id":717,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5a09e260-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240522,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMn0.RSqxR4p7B9lms_k2a55WYHx1Bj73ypm69dx1Mbt9tS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"5a09e260-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:51390","level":"info","msg":"Sent response.","req_id":717,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.637897,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":718,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5a0a0970-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240522,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMn0.RSqxR4p7B9lms_k2a55WYHx1Bj73ypm69dx1Mbt9tS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"5a0a0970-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":718,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.644579,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"68bdebe48ab064f967de5f4d3d731467","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240523,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyM30.rQ7RSV6keLuD5mZv2H_LtdeTy7RnaPLkE9MIKSQpJtQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"68bdebe48ab064f967de5f4d3d731467","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:20.265921218Z"}]},"request_id":"4256e4a0-ecaa-42e6-99b9-b8d78ee262ae","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240523.178646} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:20.308321428Z"}]},"request_id":"e502c225-fe37-4f40-bd3b-c664594b1350","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240523.1795924} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"5a09e260-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"5a0a0970-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:20.308321428Z"}]},"request_id":"958e5be6-318b-42f7-bf07-3c6122ce97f9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240523.1805599} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"68bdebe48ab064f967de5f4d3d731467","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5a09e260-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/83497da5-213a-4cc8-b73b-c9957c8c4af3? 200 47ms","method":"GET","requestID":"5a09e260-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":47,"status":200,"url":"/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5a0a0970-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/d70bb8bc-1879-4f09-8e94-4837a459b70a? 200 47ms","method":"GET","requestID":"5a0a0970-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":47,"status":200,"url":"/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"68bdebe48ab064f967de5f4d3d731467"} gateway-1 | {"time_local":"18/Jun/2025:09:55:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d70bb8bc-1879-4f09-8e94-4837a459b70a? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.050","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"68bdebe48ab064f967de5f4d3d731467"} device-1 | {"level":"info","message":"GET /devices/d70bb8bc-1879-4f09-8e94-4837a459b70a? 200 23ms","method":"GET","requestID":"68bdebe48ab064f967de5f4d3d731467","responseTime":23,"status":200,"url":"/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95"},"level":"info","message":"Building connection plan","requestID":"7b7322819d2f112907d9f0df2748c967"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"34b99922-6e3b-4423-ba94-a94acb9375af"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"7e15cf9b-51c1-4e4d-adc4-98dae8d0b19a"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"069b24fb-c77c-409e-9cd3-b71b7ea01ea0"}]},"level":"info","message":"Built pairwise service configurations","requestID":"7b7322819d2f112907d9f0df2748c967"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"7b7322819d2f112907d9f0df2748c967"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"5a157b20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":719,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":719,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.706673,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5a157b20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240522,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyMn0.RSqxR4p7B9lms_k2a55WYHx1Bj73ypm69dx1Mbt9tS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"5a157b20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"d59e2262-40f2-407b-ae60-ee2f0effde94","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240523.2293072} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0de85309-a026-4c56-9dd4-66295b430589","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240523.2294953} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"5a157b20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"5a157b20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"5a157b20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/4b0099d6-74e7-4cc2-981c-92f7be5c924d'","requestID":"5a157b20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/4b0099d6-74e7-4cc2-981c-92f7be5c924d'","requestID":"5a157b20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"5a157b20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 57ms","method":"POST","requestID":"5a157b20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":57,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"5a157b20-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"7b7322819d2f112907d9f0df2748c967"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5a2580b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":720,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1e903c84-3051-4b8b-a682-aed49e5a176d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240523.3274457} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":720,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.272037,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5a2580b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"5a2580b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5a2580b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/83497da5-213a-4cc8-b73b-c9957c8c4af3/signaling 200 8ms","method":"POST","requestID":"5a2580b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5a270750-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":721,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"49bc0035-8ecf-4d54-90dc-6a919376f4f7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240523.3622808} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":721,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.285858,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5a270750-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 32ms","method":"POST","requestID":"5a270750-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/authorize"} device-1 | {"device":"d70bb8bc-1879-4f09-8e94-4837a459b70a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"d70bb8bc-1879-4f09-8e94-4837a459b70a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5a270750-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d70bb8bc-1879-4f09-8e94-4837a459b70a/signaling 200 42ms","method":"POST","requestID":"5a270750-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":42,"status":200,"url":"/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a/signaling"} device-1 | {"device":"83497da5-213a-4cc8-b73b-c9957c8c4af3","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"4b0099d6-74e7-4cc2-981c-92f7be5c924d","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"content":{"sdp":"v=0\r\no=- 4006159551273219793 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=msid-semantic: WMS\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:o476\r\na=ice-pwd:Z+Am0ml9gpP531S+FPtD5xIq\r\na=ice-options:trickle\r\na=fingerprint:sha-256 EE:FD:B5:57:D1:D2:C4:D9:06:0D:9F:F1:BB:B0:B6:D8:77:97:2D:33:EC:34:D9:21:C8:9F:E5:9D:0B:80:A3:06\r\na=setup:active\r\na=mid:0\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n","type":"answer"},"device":"d70bb8bc-1879-4f09-8e94-4837a459b70a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:3407316273 1 udp 2113937151 c554ba5f-9e21-431d-88e4-36c189d2d1d0.local 44140 typ host generation 0 ufrag o476 network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"d70bb8bc-1879-4f09-8e94-4837a459b70a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"d70bb8bc-1879-4f09-8e94-4837a459b70a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"content":{"candidate":"candidate:1480336418 1 udp 1677729535 141.24.211.56 44140 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag o476 network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"d70bb8bc-1879-4f09-8e94-4837a459b70a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a'"} device-1 | {"device":"d70bb8bc-1879-4f09-8e94-4837a459b70a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4b0099d6-74e7-4cc2-981c-92f7be5c924d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4b0099d6-74e7-4cc2-981c-92f7be5c924d","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"83497da5-213a-4cc8-b73b-c9957c8c4af3","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"83497da5-213a-4cc8-b73b-c9957c8c4af3","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"83497da5-213a-4cc8-b73b-c9957c8c4af3","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"40b2e9dfa0aa8cf8716d816c479aff9e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"40b2e9dfa0aa8cf8716d816c479aff9e","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/4b0099d6-74e7-4cc2-981c-92f7be5c924d"}}},"level":"info","message":"received a callback","requestID":"40b2e9dfa0aa8cf8716d816c479aff9e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"40b2e9dfa0aa8cf8716d816c479aff9e","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch","requestID":"40b2e9dfa0aa8cf8716d816c479aff9e"} device-1 | {"data":{"peerconnection":"4b0099d6-74e7-4cc2-981c-92f7be5c924d","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"83497da5-213a-4cc8-b73b-c9957c8c4af3","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"d70bb8bc-1879-4f09-8e94-4837a459b70a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"83497da5-213a-4cc8-b73b-c9957c8c4af3","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"4b0099d6-74e7-4cc2-981c-92f7be5c924d","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"d70bb8bc-1879-4f09-8e94-4837a459b70a","deviceName":"JS Device 2","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4b0099d6-74e7-4cc2-981c-92f7be5c924d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4b0099d6-74e7-4cc2-981c-92f7be5c924d","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ccac840c40d0285816568c7dcafb615b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ccac840c40d0285816568c7dcafb615b","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/4b0099d6-74e7-4cc2-981c-92f7be5c924d"}}},"level":"info","message":"received a callback","requestID":"ccac840c40d0285816568c7dcafb615b"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"5b692440-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":722,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4b0099d6-74e7-4cc2-981c-92f7be5c924d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a4fb76ae-5e54-4262-b0f4-76445aab62ef","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240525.449813} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":722,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.705829,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4b0099d6-74e7-4cc2-981c-92f7be5c924d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5b692440-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/4b0099d6-74e7-4cc2-981c-92f7be5c924d","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"5b692440-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"5b692440-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/4b0099d6-74e7-4cc2-981c-92f7be5c924d 200 31ms","method":"GET","requestID":"5b692440-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/peerconnections/4b0099d6-74e7-4cc2-981c-92f7be5c924d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 52ms","method":"POST","requestID":"ccac840c40d0285816568c7dcafb615b","responseTime":52,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch","requestID":"ccac840c40d0285816568c7dcafb615b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5b702920-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":723,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0a733ec2-487a-478d-9238-90ccbac75595","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240525.4947834} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":723,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.551854,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5b702920-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5b702920-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d70bb8bc-1879-4f09-8e94-4837a459b70a/signaling 200 9ms","method":"POST","requestID":"5b702920-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a/signaling"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"5b702920-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5b750b20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":724,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1d3767a5-3c5d-4d39-b949-066560e4b858","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240525.5272183} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":724,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.499084,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5b750b20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"5b750b20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyNX0.IP3FN2lFOPkgHA0Sw9RooofCZeMrpf_CmIgxL9u1etI","level":"info","message":"auth send jwt","requestID":"8d61f2f68a4de3aa1e6b0e42a44c9586"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8d61f2f68a4de3aa1e6b0e42a44c9586","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95","requestID":"8d61f2f68a4de3aa1e6b0e42a44c9586"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5b750b20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/83497da5-213a-4cc8-b73b-c9957c8c4af3/signaling 200 10ms","method":"POST","requestID":"5b750b20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3/signaling"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":725,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":725,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.619334,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8d61f2f68a4de3aa1e6b0e42a44c9586","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240525,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyNX0.IP3FN2lFOPkgHA0Sw9RooofCZeMrpf_CmIgxL9u1etI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8d61f2f68a4de3aa1e6b0e42a44c9586","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95","requestID":"8d61f2f68a4de3aa1e6b0e42a44c9586"} experiment-1 | {"level":"info","message":"GET /experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95 200 8ms","method":"GET","requestID":"8d61f2f68a4de3aa1e6b0e42a44c9586","responseTime":8,"status":200,"url":"/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95"} gateway-1 | {"time_local":"18/Jun/2025:09:55:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95 HTTP/1.1","status": "200","body_bytes_sent":"1365","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8d61f2f68a4de3aa1e6b0e42a44c9586"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyNX0.IP3FN2lFOPkgHA0Sw9RooofCZeMrpf_CmIgxL9u1etI","level":"info","message":"auth send jwt","requestID":"401d779582a618709ac9e25df68d9a31"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"401d779582a618709ac9e25df68d9a31","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95","requestID":"401d779582a618709ac9e25df68d9a31"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":726,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":726,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.65015,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"401d779582a618709ac9e25df68d9a31","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240525,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyNX0.IP3FN2lFOPkgHA0Sw9RooofCZeMrpf_CmIgxL9u1etI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"401d779582a618709ac9e25df68d9a31","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95"},"level":"info","message":"Attempting to finish experiment","requestID":"401d779582a618709ac9e25df68d9a31"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"5b7d4880-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":727,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":727,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.655411,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4b0099d6-74e7-4cc2-981c-92f7be5c924d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5b7d4880-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/4b0099d6-74e7-4cc2-981c-92f7be5c924d","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240525,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyNX0.IP3FN2lFOPkgHA0Sw9RooofCZeMrpf_CmIgxL9u1etI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5b7d4880-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/4b0099d6-74e7-4cc2-981c-92f7be5c924d","device":"d70bb8bc-1879-4f09-8e94-4837a459b70a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"83497da5-213a-4cc8-b73b-c9957c8c4af3","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"83497da5-213a-4cc8-b73b-c9957c8c4af3","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"83497da5-213a-4cc8-b73b-c9957c8c4af3","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4b0099d6-74e7-4cc2-981c-92f7be5c924d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/4b0099d6-74e7-4cc2-981c-92f7be5c924d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4b0099d6-74e7-4cc2-981c-92f7be5c924d","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4b0099d6-74e7-4cc2-981c-92f7be5c924d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4b0099d6-74e7-4cc2-981c-92f7be5c924d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"862ed755-e521-405f-9cb6-2ecfd30e1650","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240525.5917714} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"cc335dc73321521a21b3141b252df95a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3a7058bf-5a06-440b-8e44-b51f9dadd9e5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240525.591992} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"cc335dc73321521a21b3141b252df95a","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a44e63f0d23ca02dad1665be61b315cf","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4b0099d6-74e7-4cc2-981c-92f7be5c924d"}}},"level":"info","message":"received a callback","requestID":"cc335dc73321521a21b3141b252df95a"} authorization-1 | {"level":"info","message":"POST /relations/update 200 33ms","method":"POST","requestID":"5b7d4880-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a44e63f0d23ca02dad1665be61b315cf","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4b0099d6-74e7-4cc2-981c-92f7be5c924d"}}},"level":"info","message":"received a callback","requestID":"a44e63f0d23ca02dad1665be61b315cf"} device-1 | {"data":{"peerconnection":"4b0099d6-74e7-4cc2-981c-92f7be5c924d","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"5b7d4880-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/4b0099d6-74e7-4cc2-981c-92f7be5c924d 204 58ms","method":"DELETE","requestID":"5b7d4880-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":58,"status":204,"url":"/peerconnections/4b0099d6-74e7-4cc2-981c-92f7be5c924d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95"},"level":"info","message":"Successfully finished experiment","requestID":"401d779582a618709ac9e25df68d9a31"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5b8c8ac0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":728,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd70bb8bc-1879-4f09-8e94-4837a459b70a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e4317570-b004-4cc8-9751-e587ba180713","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240525.6806223} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":728,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.440651,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5b8c8ac0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"5b8c8ac0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5b8c8ac0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d70bb8bc-1879-4f09-8e94-4837a459b70a/signaling 200 9ms","method":"POST","requestID":"5b8c8ac0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1af3b9b9-908a-4476-bc66-3198d9de6a95': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1af3b9b9-908a-4476-bc66-3198d9de6a95","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"ebda97c6-571f-4f0c-8cb2-2be15653b74a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240525.6876724} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5b8e3870-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a1773950-542c-47a3-beec-7529c3361873","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240525.6880178} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"401d779582a618709ac9e25df68d9a31","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":729,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83497da5-213a-4cc8-b73b-c9957c8c4af3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"002b4d53-d942-43a8-ad2b-5e3518e4dd84","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240525.7164829} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":729,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.280402,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5b8e3870-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"5b8e3870-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5b8e3870-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/83497da5-213a-4cc8-b73b-c9957c8c4af3/signaling 200 33ms","method":"POST","requestID":"5b8e3870-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95","requestID":"401d779582a618709ac9e25df68d9a31"} gateway-1 | {"time_local":"18/Jun/2025:09:55:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.270","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"401d779582a618709ac9e25df68d9a31"} experiment-1 | {"level":"info","message":"DELETE /experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95 204 267ms","method":"DELETE","requestID":"401d779582a618709ac9e25df68d9a31","responseTime":267,"status":204,"url":"/experiments/1af3b9b9-908a-4476-bc66-3198d9de6a95"} gateway-1 | {"time_local":"18/Jun/2025:09:55:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3198","request_time":"4.458","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"4bb3d82f482817fbc6d2a7b690ca6bae"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 196ms","method":"POST","requestID":"cc335dc73321521a21b3141b252df95a","responseTime":196,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.222","http_referrer":"","http_user_agent":"node-fetch","requestID":"cc335dc73321521a21b3141b252df95a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 195ms","method":"POST","requestID":"a44e63f0d23ca02dad1665be61b315cf","responseTime":195,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.222","http_referrer":"","http_user_agent":"node-fetch","requestID":"a44e63f0d23ca02dad1665be61b315cf"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyNX0.IP3FN2lFOPkgHA0Sw9RooofCZeMrpf_CmIgxL9u1etI","level":"info","message":"auth send jwt","requestID":"186e118a70c2233d60dd0fbe9eae298b"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"186e118a70c2233d60dd0fbe9eae298b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"186e118a70c2233d60dd0fbe9eae298b"} gateway-1 | {"time_local":"18/Jun/2025:09:55:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3443","request_time":"3.098","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3d1dbd9f611091b17fde27a8224ce0f7"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":730,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":730,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.909077,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"186e118a70c2233d60dd0fbe9eae298b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240525,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyNX0.IP3FN2lFOPkgHA0Sw9RooofCZeMrpf_CmIgxL9u1etI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"186e118a70c2233d60dd0fbe9eae298b","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/83497da5-213a-4cc8-b73b-c9957c8c4af3' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1e4180f0-34b5-476f-b755-aec0b0bb858a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240525.8319745} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"186e118a70c2233d60dd0fbe9eae298b","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d70bb8bc-1879-4f09-8e94-4837a459b70a' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"41b4ac40-2e6a-4a19-b03c-918a8c128ea4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240525.8608205} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"186e118a70c2233d60dd0fbe9eae298b","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"c5fc14b1-5d2b-4f9c-ba4e-7a1418396cbb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240525.872489} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a9fb88af-9856-4c24-b5eb-df3c4256663c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240525.8725758} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"186e118a70c2233d60dd0fbe9eae298b","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:25.872454708Z"}]},"request_id":"5d0fbea6-6eec-41ca-b229-0d5ca442cba2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240525.8769245} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"186e118a70c2233d60dd0fbe9eae298b","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"186e118a70c2233d60dd0fbe9eae298b"} gateway-1 | {"time_local":"18/Jun/2025:09:55:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.067","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"186e118a70c2233d60dd0fbe9eae298b"} device-1 | {"level":"info","message":"POST /devices? 201 62ms","method":"POST","requestID":"186e118a70c2233d60dd0fbe9eae298b","responseTime":62,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyNX0.IP3FN2lFOPkgHA0Sw9RooofCZeMrpf_CmIgxL9u1etI","level":"info","message":"auth send jwt","requestID":"4a5bbf95296c308410748958e68da78e"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4a5bbf95296c308410748958e68da78e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"4a5bbf95296c308410748958e68da78e"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":731,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":731,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.687175,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:25Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4a5bbf95296c308410748958e68da78e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240525,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyNX0.IP3FN2lFOPkgHA0Sw9RooofCZeMrpf_CmIgxL9u1etI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4a5bbf95296c308410748958e68da78e","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"eb98c653-2bdd-4b0f-a998-b750de0fbee8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240525.9218342} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4a5bbf95296c308410748958e68da78e","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f29031a7-99a6-4a5c-9b8f-cac64b919691","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240525.9266014} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"4a5bbf95296c308410748958e68da78e","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"7c635304-a3e0-49e2-bc31-5e9e43c4c745","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240525.9594169} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"06fafc72-7725-4f90-bd49-2a5071d3b656","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240525.9594858} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"4a5bbf95296c308410748958e68da78e","responseTime":35,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:25.959384790Z"}]},"request_id":"a5e1d14d-c64c-4997-8a0e-f82c8aeb1403","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240525.9636254} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4a5bbf95296c308410748958e68da78e","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"4a5bbf95296c308410748958e68da78e"} device-1 | {"level":"info","message":"POST /devices? 201 58ms","method":"POST","requestID":"4a5bbf95296c308410748958e68da78e","responseTime":58,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.085","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4a5bbf95296c308410748958e68da78e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyNn0.aXRvS2Jwgzux0I0fdNnxUuSI5mHQXq3pzYwCvBrtVY8","level":"info","message":"auth send jwt","requestID":"83bb496390b581ddb8cdeeaa0ad3129f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"83bb496390b581ddb8cdeeaa0ad3129f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"83bb496390b581ddb8cdeeaa0ad3129f"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":732,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:26Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":732,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.631679,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"83bb496390b581ddb8cdeeaa0ad3129f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240526,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyNn0.aXRvS2Jwgzux0I0fdNnxUuSI5mHQXq3pzYwCvBrtVY8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"83bb496390b581ddb8cdeeaa0ad3129f","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:25.872454708Z"}]},"request_id":"285ad8dc-b5aa-4443-85e0-ba093bd658a5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240526.9302237} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"83bb496390b581ddb8cdeeaa0ad3129f","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6be675e9-d2ae-4ee7-84f5-d732661be728","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240526.9343455} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"83bb496390b581ddb8cdeeaa0ad3129f","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:25.872454708Z"}]},"request_id":"b343250c-c8b4-4a3b-b09e-a0621a4b3c8e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240526.9684753} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"83bb496390b581ddb8cdeeaa0ad3129f","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"83bb496390b581ddb8cdeeaa0ad3129f"} gateway-1 | {"time_local":"18/Jun/2025:09:55:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.053","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"83bb496390b581ddb8cdeeaa0ad3129f"} device-1 | {"level":"info","message":"PATCH /devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d 200 49ms","method":"PATCH","requestID":"83bb496390b581ddb8cdeeaa0ad3129f","responseTime":49,"status":200,"url":"/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyNn0.aXRvS2Jwgzux0I0fdNnxUuSI5mHQXq3pzYwCvBrtVY8","level":"info","message":"auth send jwt","requestID":"11cbbf0ff79afd088fcf6e5dccfb2c2c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"11cbbf0ff79afd088fcf6e5dccfb2c2c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"11cbbf0ff79afd088fcf6e5dccfb2c2c"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":733,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:26Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":733,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.732588,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"11cbbf0ff79afd088fcf6e5dccfb2c2c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240526,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyNn0.aXRvS2Jwgzux0I0fdNnxUuSI5mHQXq3pzYwCvBrtVY8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"11cbbf0ff79afd088fcf6e5dccfb2c2c","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"11cbbf0ff79afd088fcf6e5dccfb2c2c"} device-1 | {"level":"info","message":"POST /devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d/websocket 200 40ms","method":"POST","requestID":"11cbbf0ff79afd088fcf6e5dccfb2c2c","responseTime":40,"status":200,"url":"/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:55:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.043","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"11cbbf0ff79afd088fcf6e5dccfb2c2c"} device-1 | {"level":"info","message":"device 'http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d9a9e6df69e35ee2963910640bf83f4a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d9a9e6df69e35ee2963910640bf83f4a","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d9a9e6df69e35ee2963910640bf83f4a"} device-1 | {"level":"info","message":"OPTIONS /devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3/websocket 200 1ms","method":"OPTIONS","requestID":"d9a9e6df69e35ee2963910640bf83f4a","responseTime":1,"status":200,"url":"/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60","level":"info","message":"auth send jwt","requestID":"c70f0e8e92ebbe3dde3857c314b66402"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c70f0e8e92ebbe3dde3857c314b66402","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"c70f0e8e92ebbe3dde3857c314b66402"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":734,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":734,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.788399,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c70f0e8e92ebbe3dde3857c314b66402","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240528,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"c70f0e8e92ebbe3dde3857c314b66402","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"c70f0e8e92ebbe3dde3857c314b66402"} gateway-1 | {"time_local":"18/Jun/2025:09:55:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.027","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c70f0e8e92ebbe3dde3857c314b66402"} device-1 | {"level":"info","message":"POST /devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3/websocket 200 22ms","method":"POST","requestID":"c70f0e8e92ebbe3dde3857c314b66402","responseTime":22,"status":200,"url":"/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f51e7c299f8f17f9967acd01d816cb29","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f51e7c299f8f17f9967acd01d816cb29","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f51e7c299f8f17f9967acd01d816cb29"} device-1 | {"level":"info","message":"OPTIONS /devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3? 200 2ms","method":"OPTIONS","requestID":"f51e7c299f8f17f9967acd01d816cb29","responseTime":2,"status":200,"url":"/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60","level":"info","message":"auth send jwt","requestID":"32c0e3163774ea17a260874a838790d5"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"32c0e3163774ea17a260874a838790d5","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"32c0e3163774ea17a260874a838790d5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":735,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":735,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.820382,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"32c0e3163774ea17a260874a838790d5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240528,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"32c0e3163774ea17a260874a838790d5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:25.959384790Z"}]},"request_id":"e4fc6bed-8739-4623-a2db-c0d9904c6f23","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.4329214} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"32c0e3163774ea17a260874a838790d5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7761cc1a-cde1-43af-825d-213855961966","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.4368305} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"32c0e3163774ea17a260874a838790d5","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:25.959384790Z"}]},"request_id":"63cdcb64-21c4-4671-8073-54fa4796b070","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.4453423} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"32c0e3163774ea17a260874a838790d5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"32c0e3163774ea17a260874a838790d5"} gateway-1 | {"time_local":"18/Jun/2025:09:55:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.030","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"32c0e3163774ea17a260874a838790d5"} device-1 | {"level":"info","message":"PATCH /devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3? 200 24ms","method":"PATCH","requestID":"32c0e3163774ea17a260874a838790d5","responseTime":24,"status":200,"url":"/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60","level":"info","message":"auth send jwt","requestID":"4af46f92f899746a23b2ac1b1985e438"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4af46f92f899746a23b2ac1b1985e438","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4af46f92f899746a23b2ac1b1985e438"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":736,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":736,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.700615,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4af46f92f899746a23b2ac1b1985e438","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240528,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4af46f92f899746a23b2ac1b1985e438","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:25.872454708Z"}]},"request_id":"b72c1573-b006-414e-801e-dd97f1792d20","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.467801} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"4af46f92f899746a23b2ac1b1985e438","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4af46f92f899746a23b2ac1b1985e438"} gateway-1 | {"time_local":"18/Jun/2025:09:55:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4af46f92f899746a23b2ac1b1985e438"} device-1 | {"level":"info","message":"GET /devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d? 200 18ms","method":"GET","requestID":"4af46f92f899746a23b2ac1b1985e438","responseTime":18,"status":200,"url":"/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60","level":"info","message":"auth send jwt","requestID":"a53f19b11b13ad643f23fddbcdf600fa"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a53f19b11b13ad643f23fddbcdf600fa","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a53f19b11b13ad643f23fddbcdf600fa"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":737,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":737,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.696051,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a53f19b11b13ad643f23fddbcdf600fa","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240528,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a53f19b11b13ad643f23fddbcdf600fa","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:25.959384790Z"}]},"request_id":"e35713cd-80e8-43ca-a2e9-236d19372def","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.4844081} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a53f19b11b13ad643f23fddbcdf600fa","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"a53f19b11b13ad643f23fddbcdf600fa"} gateway-1 | {"time_local":"18/Jun/2025:09:55:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a53f19b11b13ad643f23fddbcdf600fa"} device-1 | {"level":"info","message":"GET /devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3? 200 11ms","method":"GET","requestID":"a53f19b11b13ad643f23fddbcdf600fa","responseTime":11,"status":200,"url":"/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60","level":"info","message":"auth send jwt","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":738,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":738,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.758224,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b4c335d0dc43b1a3e7e10a95a07d3623","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240528,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8"},"level":"info","message":"Attempting to run experiment","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8"},"level":"info","message":"Attempting to book experiment","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8"},"level":"info","message":"Successfully booked experiment","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5d43d7b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5d43fec0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":739,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":739,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.760275,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5d43d7b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240528,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5d43d7b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":740,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":740,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.90718,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5d43fec0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240528,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"5d43fec0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:25.872454708Z"}]},"request_id":"75e30334-adc1-43d8-8554-412f2d7b5e93","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.5636353} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5d43d7b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:25.959384790Z"}]},"request_id":"06275b94-9ebf-44f4-a39b-ffe4902204bc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.5673828} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5d43d7b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5d43fec0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"GET /devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d? 200 37ms","method":"GET","requestID":"5d43d7b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5d43fec0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3? 200 39ms","method":"GET","requestID":"5d43fec0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":200,"url":"/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8"},"level":"info","message":"Setting up experiment","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8"},"level":"info","message":"Successfully locked booking for experiment","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8"},"level":"info","message":"Successfully set up experiment","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5d4dc2c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5d511e20-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8"},"level":"info","message":"Successfully running experiment","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":741,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":742,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":741,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.831149,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":742,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.61059,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5d4dc2c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240528,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5d4dc2c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5d511e20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240528,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5d511e20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:25.872454708Z"}]},"request_id":"5911081e-dbcc-4fde-8845-5bbd17874ca1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.6512706} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5d4dc2c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:25.959384790Z"}]},"request_id":"f8515e60-9b0c-4c9e-bf26-3cb4f892b9f5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.6521986} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5d511e20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F66de006a-29a0-4661-b1bf-4059559fbbe8#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F66de006a-29a0-4661-b1bf-4059559fbbe8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"3956c15f-acb0-4ff4-aa22-eb089a9f603c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.6557615} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"72d85a99-c66c-4e92-9954-7e19026fc7db","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.6559117} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5d4dc2c0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623","responseTime":12,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"GET /devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d? 200 38ms","method":"GET","requestID":"5d4dc2c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":38,"status":200,"url":"/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5d511e20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3? 200 16ms","method":"GET","requestID":"5d511e20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":16,"status":200,"url":"/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5d542b60-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":743,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:28Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623"} gateway-1 | {"time_local":"18/Jun/2025:09:55:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1292","request_time":"0.201","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623"} experiment-1 | {"level":"info","message":"POST /experiments? 201 196ms","method":"POST","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623","responseTime":196,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9f3bc404-d0d9-4fc3-9221-cbf63ea79172","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.6914272} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":743,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.585922,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5d542b60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"5d542b60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60","level":"info","message":"auth send jwt","requestID":"19c61720fa64075bf95c0aef84597195"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"19c61720fa64075bf95c0aef84597195","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"19c61720fa64075bf95c0aef84597195"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5d542b60-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":744,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:28Z"} device-1 | {"level":"info","message":"POST /devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d/signaling 200 35ms","method":"POST","requestID":"5d542b60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d/signaling"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":744,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.744725,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"19c61720fa64075bf95c0aef84597195","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240528,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"19c61720fa64075bf95c0aef84597195","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5d59d0b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":745,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:25.872454708Z"}]},"request_id":"1998c285-df15-480a-ae36-3f61da92889c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.70306} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"19c61720fa64075bf95c0aef84597195","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"444bf57f-4e8e-425f-ad84-4598f0fc9f70","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.7033374} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":745,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.658309,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5d59d0b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"5d59d0b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"19c61720fa64075bf95c0aef84597195"} device-1 | {"level":"info","message":"GET /devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d? 200 13ms","method":"GET","requestID":"19c61720fa64075bf95c0aef84597195","responseTime":13,"status":200,"url":"/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"19c61720fa64075bf95c0aef84597195"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5d59d0b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3/signaling 200 10ms","method":"POST","requestID":"5d59d0b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5d5ba570-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60","level":"info","message":"auth send jwt","requestID":"f23e40f8cc2e64ffe6f24de53e7ac81f"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5d5f7600-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"f23e40f8cc2e64ffe6f24de53e7ac81f","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"f23e40f8cc2e64ffe6f24de53e7ac81f"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":746,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":746,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.936635,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":747,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5d5ba570-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240528,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"5d5ba570-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":747,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.697338,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":748,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5d5f7600-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240528,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"5d5f7600-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":748,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.690035,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f23e40f8cc2e64ffe6f24de53e7ac81f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240528,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"f23e40f8cc2e64ffe6f24de53e7ac81f","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:25.959384790Z"}]},"request_id":"686b92b0-117a-4532-9ce4-2b6cc54a45f4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.7477138} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5d5f7600-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:25.872454708Z"}]},"request_id":"f57403ac-c734-4211-8797-82c146469285","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.7488992} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"5d5ba570-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:25.959384790Z"}]},"request_id":"bb9eed01-e17a-4ca9-8847-f673694d5d34","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.751224} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"f23e40f8cc2e64ffe6f24de53e7ac81f","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5d5f7600-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3? 200 18ms","method":"GET","requestID":"5d5f7600-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":18,"status":200,"url":"/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5d5ba570-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d? 200 46ms","method":"GET","requestID":"5d5ba570-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":46,"status":200,"url":"/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"f23e40f8cc2e64ffe6f24de53e7ac81f"} gateway-1 | {"time_local":"18/Jun/2025:09:55:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.050","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f23e40f8cc2e64ffe6f24de53e7ac81f"} device-1 | {"level":"info","message":"GET /devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3? 200 21ms","method":"GET","requestID":"f23e40f8cc2e64ffe6f24de53e7ac81f","responseTime":21,"status":200,"url":"/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8"},"level":"info","message":"Building connection plan","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"1e53ff6a-8f0e-493e-86c7-6e6205413169"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"4efe91d0-8655-4568-ac7f-37609e0e5991"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"2243a8aa-e516-4c62-b632-e397ff68de47"}]},"level":"info","message":"Built pairwise service configurations","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":749,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":749,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.711572,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:28Z"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"5d634690-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5d634690-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240528,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUyOH0.fcynvWq8qB1KeqxzcDRnCwB3JcwFx8t62eMLBPpSv60"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"5d634690-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"390b9678-ac06-4c61-bc88-e46e0a41c18b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.7956426} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"68c1fd47-788d-42f2-aae0-81674bb5915e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.795881} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"5d634690-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"5d634690-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"5d634690-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/47058330-412d-4043-9d1f-bc3f02e7229a'","requestID":"5d634690-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/47058330-412d-4043-9d1f-bc3f02e7229a'","requestID":"5d634690-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"5d634690-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 71ms","method":"POST","requestID":"5d634690-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":71,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"5d634690-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5d723ab0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"b4c335d0dc43b1a3e7e10a95a07d3623"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":750,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8019a15e-94a6-4ec3-9337-86eb3d795a92","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.8835342} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":750,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.422505,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5d723ab0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 25ms","method":"POST","requestID":"5d723ab0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":25,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5d723ab0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d/signaling 200 29ms","method":"POST","requestID":"5d723ab0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5d771cb0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":751,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:28Z"} device-1 | {"device":"112effe0-4bcd-4df2-8e3f-8883e3d0aca3","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"112effe0-4bcd-4df2-8e3f-8883e3d0aca3","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"be191e0a-b06b-489b-ae09-576d4d2993bc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240528.8956118} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":751,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.688841,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5d771cb0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"5d771cb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"content":{"sdp":"v=0\r\no=- 8586091248362692612 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:vyEX\r\na=ice-pwd:C7t6lkFS7J4vgBtysWoOwEa3\r\na=ice-options:trickle\r\na=fingerprint:sha-256 7E:0A:35:8B:38:5D:45:8E:61:37:4D:D0:97:EC:FB:43:4E:BF:D7:7A:13:67:A1:3C:88:2E:AE:FF:69:BB:62:9A\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"112effe0-4bcd-4df2-8e3f-8883e3d0aca3","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5d771cb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3/signaling 200 11ms","method":"POST","requestID":"5d771cb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3/signaling"} device-1 | {"device":"46ee56ea-3e9d-4b72-9a29-a890843ace9d","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"47058330-412d-4043-9d1f-bc3f02e7229a","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"46ee56ea-3e9d-4b72-9a29-a890843ace9d","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"46ee56ea-3e9d-4b72-9a29-a890843ace9d","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"46ee56ea-3e9d-4b72-9a29-a890843ace9d","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"46ee56ea-3e9d-4b72-9a29-a890843ace9d","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/47058330-412d-4043-9d1f-bc3f02e7229a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"47058330-412d-4043-9d1f-bc3f02e7229a","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2a58b961d260fc469f3e26cdd31fca75","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2a58b961d260fc469f3e26cdd31fca75","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/47058330-412d-4043-9d1f-bc3f02e7229a"}}},"level":"info","message":"received a callback","requestID":"2a58b961d260fc469f3e26cdd31fca75"} device-1 | {"content":{"candidate":"candidate:3482635238 1 udp 2113937151 4fe7af82-5152-4a57-8126-16bc2ab98da3.local 34482 typ host generation 0 ufrag vyEX network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"112effe0-4bcd-4df2-8e3f-8883e3d0aca3","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"2a58b961d260fc469f3e26cdd31fca75","responseTime":5,"status":200,"url":"/callbacks/experiment"} device-1 | {"content":{"candidate":"candidate:1556048629 1 udp 1677729535 141.24.211.56 34482 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag vyEX network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"112effe0-4bcd-4df2-8e3f-8883e3d0aca3","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"112effe0-4bcd-4df2-8e3f-8883e3d0aca3","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"112effe0-4bcd-4df2-8e3f-8883e3d0aca3","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} gateway-1 | {"time_local":"18/Jun/2025:09:55:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch","requestID":"2a58b961d260fc469f3e26cdd31fca75"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3'"} device-1 | {"data":{"peerconnection":"47058330-412d-4043-9d1f-bc3f02e7229a","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"46ee56ea-3e9d-4b72-9a29-a890843ace9d","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"112effe0-4bcd-4df2-8e3f-8883e3d0aca3","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"46ee56ea-3e9d-4b72-9a29-a890843ace9d","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"47058330-412d-4043-9d1f-bc3f02e7229a","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/47058330-412d-4043-9d1f-bc3f02e7229a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"47058330-412d-4043-9d1f-bc3f02e7229a","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8711b2f229ef2767bec12edf6f43bd15","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8711b2f229ef2767bec12edf6f43bd15","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/47058330-412d-4043-9d1f-bc3f02e7229a"}}},"level":"info","message":"received a callback","requestID":"8711b2f229ef2767bec12edf6f43bd15"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"5eab56f0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":752,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:30Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F47058330-412d-4043-9d1f-bc3f02e7229a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d5417981-d87b-43fa-b3db-418191d796cb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240530.9155717} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":752,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.272336,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/47058330-412d-4043-9d1f-bc3f02e7229a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5eab56f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/47058330-412d-4043-9d1f-bc3f02e7229a","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"5eab56f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"5eab56f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/47058330-412d-4043-9d1f-bc3f02e7229a 200 8ms","method":"GET","requestID":"5eab56f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/peerconnections/47058330-412d-4043-9d1f-bc3f02e7229a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 26ms","method":"POST","requestID":"8711b2f229ef2767bec12edf6f43bd15","responseTime":26,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.029","http_referrer":"","http_user_agent":"node-fetch","requestID":"8711b2f229ef2767bec12edf6f43bd15"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5eaed960-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":753,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:30Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a9112d2f-99dc-483b-b5e4-8e7412ef7b42","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240530.9385848} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":753,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.185643,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5eaed960-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"5eaed960-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5eaed960-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d/signaling 200 8ms","method":"POST","requestID":"5eaed960-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5eb06000-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":754,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:30Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"69ba1e05-9370-4376-bd56-d04f95d4abb2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240530.9497397} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":754,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.354111,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5eb06000-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"5eb06000-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5eb06000-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3/signaling 200 11ms","method":"POST","requestID":"5eb06000-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMH0.K8f_DdG4gICB7S1fIAGBgVnpjXpD3_cAaEeOmhaTcFY","level":"info","message":"auth send jwt","requestID":"d77536dce51a53d3ef1616bb097ee801"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d77536dce51a53d3ef1616bb097ee801","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/66de006a-29a0-4661-b1bf-4059559fbbe8","requestID":"d77536dce51a53d3ef1616bb097ee801"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":755,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:31Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":755,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.790583,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d77536dce51a53d3ef1616bb097ee801","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240530,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMH0.K8f_DdG4gICB7S1fIAGBgVnpjXpD3_cAaEeOmhaTcFY"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"d77536dce51a53d3ef1616bb097ee801","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/66de006a-29a0-4661-b1bf-4059559fbbe8","requestID":"d77536dce51a53d3ef1616bb097ee801"} gateway-1 | {"time_local":"18/Jun/2025:09:55:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/66de006a-29a0-4661-b1bf-4059559fbbe8 HTTP/1.1","status": "200","body_bytes_sent":"1365","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d77536dce51a53d3ef1616bb097ee801"} experiment-1 | {"level":"info","message":"GET /experiments/66de006a-29a0-4661-b1bf-4059559fbbe8 200 9ms","method":"GET","requestID":"d77536dce51a53d3ef1616bb097ee801","responseTime":9,"status":200,"url":"/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMX0.sOv5JLTcXSizLZftIFzSg-ykd2qhi_flH-VSd9W9auE","level":"info","message":"auth send jwt","requestID":"f75e1c42cb5661389062069d4bc104dd"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f75e1c42cb5661389062069d4bc104dd","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/66de006a-29a0-4661-b1bf-4059559fbbe8","requestID":"f75e1c42cb5661389062069d4bc104dd"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":756,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:31Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":756,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.670362,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:31Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f75e1c42cb5661389062069d4bc104dd","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240531,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMX0.sOv5JLTcXSizLZftIFzSg-ykd2qhi_flH-VSd9W9auE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f75e1c42cb5661389062069d4bc104dd","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8"},"level":"info","message":"Attempting to finish experiment","requestID":"f75e1c42cb5661389062069d4bc104dd"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"5ebf7b30-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":757,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:31Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":757,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.726642,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:31Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/47058330-412d-4043-9d1f-bc3f02e7229a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5ebf7b30-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/47058330-412d-4043-9d1f-bc3f02e7229a","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240531,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMX0.sOv5JLTcXSizLZftIFzSg-ykd2qhi_flH-VSd9W9auE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5ebf7b30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/47058330-412d-4043-9d1f-bc3f02e7229a","device":"112effe0-4bcd-4df2-8e3f-8883e3d0aca3","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"46ee56ea-3e9d-4b72-9a29-a890843ace9d","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"46ee56ea-3e9d-4b72-9a29-a890843ace9d","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"46ee56ea-3e9d-4b72-9a29-a890843ace9d","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/47058330-412d-4043-9d1f-bc3f02e7229a' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/47058330-412d-4043-9d1f-bc3f02e7229a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"47058330-412d-4043-9d1f-bc3f02e7229a","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F47058330-412d-4043-9d1f-bc3f02e7229a': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F47058330-412d-4043-9d1f-bc3f02e7229a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"c9f6aa9e-dae5-40dd-972b-30ece95f775c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240531.0590816} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8a332675-0ac7-4cca-8294-0f63be2a89a6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240531.0594985} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"331756c042761c024cfb0c47e6cf6d28","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"331756c042761c024cfb0c47e6cf6d28","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"5ebf7b30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"dda3e18c598f9736237b2893312735e0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/47058330-412d-4043-9d1f-bc3f02e7229a"}}},"level":"info","message":"received a callback","requestID":"331756c042761c024cfb0c47e6cf6d28"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"dda3e18c598f9736237b2893312735e0","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/47058330-412d-4043-9d1f-bc3f02e7229a"}}},"level":"info","message":"received a callback","requestID":"dda3e18c598f9736237b2893312735e0"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"5ebf7b30-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/47058330-412d-4043-9d1f-bc3f02e7229a 204 55ms","method":"DELETE","requestID":"5ebf7b30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":55,"status":204,"url":"/peerconnections/47058330-412d-4043-9d1f-bc3f02e7229a"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8"},"level":"info","message":"Successfully finished experiment","requestID":"f75e1c42cb5661389062069d4bc104dd"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5ecdfa20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":758,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:31Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46ee56ea-3e9d-4b72-9a29-a890843ace9d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"468bb667-5a9a-4f71-bc1d-59310e8fe4f2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240531.141981} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":758,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.447387,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5ecdfa20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5ecdfa20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5ecdfa20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d/signaling 200 8ms","method":"POST","requestID":"5ecdfa20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F66de006a-29a0-4661-b1bf-4059559fbbe8': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F66de006a-29a0-4661-b1bf-4059559fbbe8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"341516d9-b127-46ff-8487-62e1a6c4a6ce","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240531.1482677} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"42e8b140-2975-4a67-b572-5d3c6f70347b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240531.1485343} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5ecfa7d0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"f75e1c42cb5661389062069d4bc104dd","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":759,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:31Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F112effe0-4bcd-4df2-8e3f-8883e3d0aca3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c37b7e66-3a73-4541-9230-e3c1b28bac08","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240531.153916} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":759,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.888774,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5ecfa7d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"5ecfa7d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5ecfa7d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3/signaling 200 11ms","method":"POST","requestID":"5ecfa7d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/66de006a-29a0-4661-b1bf-4059559fbbe8","requestID":"f75e1c42cb5661389062069d4bc104dd"} gateway-1 | {"time_local":"18/Jun/2025:09:55:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/66de006a-29a0-4661-b1bf-4059559fbbe8 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.242","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f75e1c42cb5661389062069d4bc104dd"} experiment-1 | {"level":"info","message":"DELETE /experiments/66de006a-29a0-4661-b1bf-4059559fbbe8 204 239ms","method":"DELETE","requestID":"f75e1c42cb5661389062069d4bc104dd","responseTime":239,"status":204,"url":"/experiments/66de006a-29a0-4661-b1bf-4059559fbbe8"} gateway-1 | {"time_local":"18/Jun/2025:09:55:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3247","request_time":"4.234","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"fcdfb83b1c3536e73df30813be448e5e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 190ms","method":"POST","requestID":"331756c042761c024cfb0c47e6cf6d28","responseTime":190,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.193","http_referrer":"","http_user_agent":"node-fetch","requestID":"331756c042761c024cfb0c47e6cf6d28"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 189ms","method":"POST","requestID":"dda3e18c598f9736237b2893312735e0","responseTime":189,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.192","http_referrer":"","http_user_agent":"node-fetch","requestID":"dda3e18c598f9736237b2893312735e0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMX0.sOv5JLTcXSizLZftIFzSg-ykd2qhi_flH-VSd9W9auE","level":"info","message":"auth send jwt","requestID":"80daecb50982ba4bda8328b1f77b4728"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"80daecb50982ba4bda8328b1f77b4728","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":760,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:31Z"} device-1 | {"level":"info","message":"postDevices called","requestID":"80daecb50982ba4bda8328b1f77b4728"} gateway-1 | {"time_local":"18/Jun/2025:09:55:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3438","request_time":"2.875","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3e54ce698ea0dbd1f7a2ae76e8a82188"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":760,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.699109,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"80daecb50982ba4bda8328b1f77b4728","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240531,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMX0.sOv5JLTcXSizLZftIFzSg-ykd2qhi_flH-VSd9W9auE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"80daecb50982ba4bda8328b1f77b4728","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/46ee56ea-3e9d-4b72-9a29-a890843ace9d' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/112effe0-4bcd-4df2-8e3f-8883e3d0aca3' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0a37e4aa-9964-4a38-a593-5b6d5da653f8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240531.3062384} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"80daecb50982ba4bda8328b1f77b4728","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c789c4d4-67ed-43a4-bb87-27d11519166f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240531.3105838} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"80daecb50982ba4bda8328b1f77b4728","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"1611ec1c-f78e-4e91-ab3b-730ce22094e8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240531.3193128} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"41368af4-5bd3-48aa-9abc-f51f31485eee","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240531.3194532} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"80daecb50982ba4bda8328b1f77b4728","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:31.319288037Z"}]},"request_id":"2eba7403-5ef9-4a48-a648-c089a53d0520","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240531.324245} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"80daecb50982ba4bda8328b1f77b4728","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"80daecb50982ba4bda8328b1f77b4728"} device-1 | {"level":"info","message":"POST /devices? 201 62ms","method":"POST","requestID":"80daecb50982ba4bda8328b1f77b4728","responseTime":62,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.074","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"80daecb50982ba4bda8328b1f77b4728"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMX0.sOv5JLTcXSizLZftIFzSg-ykd2qhi_flH-VSd9W9auE","level":"info","message":"auth send jwt","requestID":"7d4bee039c76353f66134a5d405fb4df"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7d4bee039c76353f66134a5d405fb4df","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"7d4bee039c76353f66134a5d405fb4df"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":761,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:31Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":761,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.755825,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7d4bee039c76353f66134a5d405fb4df","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240531,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMX0.sOv5JLTcXSizLZftIFzSg-ykd2qhi_flH-VSd9W9auE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7d4bee039c76353f66134a5d405fb4df","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0f279175-951c-4ec3-9d2e-83c58dab2118","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240531.3464096} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"7d4bee039c76353f66134a5d405fb4df","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d8f1a205-7717-4ff9-a261-5ad71f419a31","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240531.3513336} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"7d4bee039c76353f66134a5d405fb4df","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"874760a4-0a50-490f-9e2f-a41e30568e07","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240531.360225} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d7ae1156-8a11-4164-a16d-7e93f8374207","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240531.3611293} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"7d4bee039c76353f66134a5d405fb4df","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:31.359976351Z"}]},"request_id":"15635af5-2a01-4602-a0c9-e583af555149","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240531.3652673} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"7d4bee039c76353f66134a5d405fb4df","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"7d4bee039c76353f66134a5d405fb4df"} gateway-1 | {"time_local":"18/Jun/2025:09:55:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7d4bee039c76353f66134a5d405fb4df"} device-1 | {"level":"info","message":"POST /devices? 201 35ms","method":"POST","requestID":"7d4bee039c76353f66134a5d405fb4df","responseTime":35,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8","level":"info","message":"auth send jwt","requestID":"10a6c51fe31b0a6073b39f2b885f4c63"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"10a6c51fe31b0a6073b39f2b885f4c63","responseTime":3,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8","level":"info","message":"auth send jwt","requestID":"b56f62dcb5df3e4c36a3c51c9e8f9f58"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b56f62dcb5df3e4c36a3c51c9e8f9f58","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"10a6c51fe31b0a6073b39f2b885f4c63"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"b56f62dcb5df3e4c36a3c51c9e8f9f58"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":762,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":762,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.996367,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":763,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"10a6c51fe31b0a6073b39f2b885f4c63","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240532,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"10a6c51fe31b0a6073b39f2b885f4c63","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":763,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.655332,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b56f62dcb5df3e4c36a3c51c9e8f9f58","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240532,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"b56f62dcb5df3e4c36a3c51c9e8f9f58","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:31.319288037Z"}]},"request_id":"9fa015f2-1328-460d-9cb4-6ed8f296ff10","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.2939067} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"10a6c51fe31b0a6073b39f2b885f4c63","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:31.359976351Z"}]},"request_id":"85ae11b0-6eec-4c1b-aa6f-56b84fd9de2e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.294464} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b56f62dcb5df3e4c36a3c51c9e8f9f58","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b59afa7d-174e-4a26-a027-4e4956008d97","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.2988598} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"10a6c51fe31b0a6073b39f2b885f4c63","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1f4f0452-757d-4c7a-be5d-a80640f143bc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.3013628} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"b56f62dcb5df3e4c36a3c51c9e8f9f58","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:31.359976351Z"}]},"request_id":"6f22d7f1-cc59-423f-b3c3-8e0e2d91d8a0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.3047051} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b56f62dcb5df3e4c36a3c51c9e8f9f58","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"b56f62dcb5df3e4c36a3c51c9e8f9f58"} device-1 | {"level":"info","message":"PATCH /devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a 200 46ms","method":"PATCH","requestID":"b56f62dcb5df3e4c36a3c51c9e8f9f58","responseTime":46,"status":200,"url":"/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a"} gateway-1 | {"time_local":"18/Jun/2025:09:55:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.052","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"b56f62dcb5df3e4c36a3c51c9e8f9f58"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8","level":"info","message":"auth send jwt","requestID":"90a5e0c83964df3b21e1b21092789ef3"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"90a5e0c83964df3b21e1b21092789ef3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"90a5e0c83964df3b21e1b21092789ef3"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":764,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":764,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.888702,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"90a5e0c83964df3b21e1b21092789ef3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240532,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"90a5e0c83964df3b21e1b21092789ef3","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:31.319288037Z"}]},"request_id":"9017149a-ce19-4fe0-8567-1a6ee764b3f3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.3404672} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"10a6c51fe31b0a6073b39f2b885f4c63","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"10a6c51fe31b0a6073b39f2b885f4c63"} device-1 | {"level":"info","message":"PATCH /devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5 200 84ms","method":"PATCH","requestID":"10a6c51fe31b0a6073b39f2b885f4c63","responseTime":84,"status":200,"url":"/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5"} gateway-1 | {"time_local":"18/Jun/2025:09:55:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5 HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.088","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"10a6c51fe31b0a6073b39f2b885f4c63"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8","level":"info","message":"auth send jwt","requestID":"c3779208a1c7be809987cd6e614d568c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c3779208a1c7be809987cd6e614d568c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"c3779208a1c7be809987cd6e614d568c"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":765,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":765,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.827267,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c3779208a1c7be809987cd6e614d568c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240532,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c3779208a1c7be809987cd6e614d568c","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"90a5e0c83964df3b21e1b21092789ef3"} gateway-1 | {"time_local":"18/Jun/2025:09:55:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.046","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"90a5e0c83964df3b21e1b21092789ef3"} device-1 | {"level":"info","message":"POST /devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a/websocket 200 42ms","method":"POST","requestID":"90a5e0c83964df3b21e1b21092789ef3","responseTime":42,"status":200,"url":"/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"c3779208a1c7be809987cd6e614d568c"} device-1 | {"level":"info","message":"POST /devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5/websocket 200 15ms","method":"POST","requestID":"c3779208a1c7be809987cd6e614d568c","responseTime":15,"status":200,"url":"/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:55:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.018","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"c3779208a1c7be809987cd6e614d568c"} device-1 | {"level":"info","message":"device 'http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8","level":"info","message":"auth send jwt","requestID":"cf13b25bef436df0ea8ca5a459c096a5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cf13b25bef436df0ea8ca5a459c096a5","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"cf13b25bef436df0ea8ca5a459c096a5"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":766,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":766,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.8533,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"cf13b25bef436df0ea8ca5a459c096a5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240532,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"cf13b25bef436df0ea8ca5a459c096a5","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:31.319288037Z"}]},"request_id":"8812c12d-1777-4d63-bc09-630c7aa46839","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.438363} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"cf13b25bef436df0ea8ca5a459c096a5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"cf13b25bef436df0ea8ca5a459c096a5"} gateway-1 | {"time_local":"18/Jun/2025:09:55:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cf13b25bef436df0ea8ca5a459c096a5"} device-1 | {"level":"info","message":"GET /devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5? 200 36ms","method":"GET","requestID":"cf13b25bef436df0ea8ca5a459c096a5","responseTime":36,"status":200,"url":"/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8","level":"info","message":"auth send jwt","requestID":"afa485dac501f65c3fdaec769b8761f2"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"afa485dac501f65c3fdaec769b8761f2","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"afa485dac501f65c3fdaec769b8761f2"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":767,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":767,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.654156,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"afa485dac501f65c3fdaec769b8761f2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240532,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"afa485dac501f65c3fdaec769b8761f2","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:31.359976351Z"}]},"request_id":"0b7d1628-5642-4ae0-b4f8-73330a985107","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.453627} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"afa485dac501f65c3fdaec769b8761f2","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"afa485dac501f65c3fdaec769b8761f2"} device-1 | {"level":"info","message":"GET /devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a? 200 11ms","method":"GET","requestID":"afa485dac501f65c3fdaec769b8761f2","responseTime":11,"status":200,"url":"/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"afa485dac501f65c3fdaec769b8761f2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8","level":"info","message":"auth send jwt","requestID":"6d6ecde349c81f7e5f0745b5125a580b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6d6ecde349c81f7e5f0745b5125a580b","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"6d6ecde349c81f7e5f0745b5125a580b"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":768,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":768,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.624629,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6d6ecde349c81f7e5f0745b5125a580b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240532,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6d6ecde349c81f7e5f0745b5125a580b","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e"},"level":"info","message":"Attempting to run experiment","requestID":"6d6ecde349c81f7e5f0745b5125a580b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e"},"level":"info","message":"Attempting to book experiment","requestID":"6d6ecde349c81f7e5f0745b5125a580b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e"},"level":"info","message":"Successfully booked experiment","requestID":"6d6ecde349c81f7e5f0745b5125a580b"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5fa3c0b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5fa3e7c0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":769,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":769,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.615353,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":770,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5fa3c0b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240532,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5fa3c0b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":770,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.595085,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5fa3e7c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240532,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5fa3e7c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:31.319288037Z"}]},"request_id":"bc251390-5301-48d9-a717-a5f9e5df48f3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.5462217} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5fa3c0b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:31.359976351Z"}]},"request_id":"cad18ca8-3e74-4c23-8b06-6c042db9f0b9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.5468879} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5fa3e7c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5fa3c0b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5? 200 12ms","method":"GET","requestID":"5fa3c0b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5fa3e7c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a? 200 12ms","method":"GET","requestID":"5fa3e7c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e"},"level":"info","message":"Setting up experiment","requestID":"6d6ecde349c81f7e5f0745b5125a580b"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"6d6ecde349c81f7e5f0745b5125a580b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"6d6ecde349c81f7e5f0745b5125a580b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e"},"level":"info","message":"Successfully locked booking for experiment","requestID":"6d6ecde349c81f7e5f0745b5125a580b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e"},"level":"info","message":"Successfully set up experiment","requestID":"6d6ecde349c81f7e5f0745b5125a580b"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5fad0f80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5fad84b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":771,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":771,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.949831,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":772,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e"},"level":"info","message":"Successfully running experiment","requestID":"6d6ecde349c81f7e5f0745b5125a580b"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5fad0f80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240532,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 25ms","method":"POST","requestID":"5fad0f80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":25,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":772,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.769035,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5fad84b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240532,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5fad84b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:31.319288037Z"}]},"request_id":"11296d3c-f779-4ea6-baa4-5e6adce0cb1e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.631875} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5fad0f80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:31.359976351Z"}]},"request_id":"a697298a-1545-4074-aef7-6980926c8092","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.632707} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5fad84b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5fad0f80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5? 200 39ms","method":"GET","requestID":"5fad0f80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":200,"url":"/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5fad84b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a? 200 37ms","method":"GET","requestID":"5fad84b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbb98d6cd-b747-49e4-b4d8-de974ec93b4e#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbb98d6cd-b747-49e4-b4d8-de974ec93b4e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"f13464dc-f331-4414-bc10-6d0e55712de0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.6408646} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"62b516ac-3091-4953-949d-381ff71a0e3c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.6411889} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"6d6ecde349c81f7e5f0745b5125a580b","responseTime":14,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5fb39f30-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":773,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"59149062-5874-424f-a08f-aa285c32d302","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.6478674} experiment-1 | {"data":{"experiment":"http://localhost/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"6d6ecde349c81f7e5f0745b5125a580b"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":773,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.400663,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} gateway-1 | {"time_local":"18/Jun/2025:09:55:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1296","request_time":"0.215","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6d6ecde349c81f7e5f0745b5125a580b"} experiment-1 | {"level":"info","message":"POST /experiments? 201 188ms","method":"POST","requestID":"6d6ecde349c81f7e5f0745b5125a580b","responseTime":188,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5fb39f30-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"5fb39f30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5fb39f30-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8","level":"info","message":"auth send jwt","requestID":"cdd32f216ea5242087d4ec8b44743d0c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cdd32f216ea5242087d4ec8b44743d0c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5/signaling 200 33ms","method":"POST","requestID":"5fb39f30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"cdd32f216ea5242087d4ec8b44743d0c"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5fb8f660-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":774,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":774,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.653483,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":775,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"cdd32f216ea5242087d4ec8b44743d0c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240532,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"cdd32f216ea5242087d4ec8b44743d0c","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"404694e5-130f-4abc-8ebd-7971c77cf617","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.6821039} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":775,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.339937,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5fb8f660-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5fb8f660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:31.319288037Z"}]},"request_id":"e39a2c4b-0200-42c7-9a02-7a031042f62e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.6854107} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5fb8f660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a/signaling 200 8ms","method":"POST","requestID":"5fb8f660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"cdd32f216ea5242087d4ec8b44743d0c","responseTime":2,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"6d6ecde349c81f7e5f0745b5125a580b"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5fba7d00-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5fbaa410-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"cdd32f216ea5242087d4ec8b44743d0c"} gateway-1 | {"time_local":"18/Jun/2025:09:55:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cdd32f216ea5242087d4ec8b44743d0c"} device-1 | {"level":"info","message":"GET /devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5? 200 13ms","method":"GET","requestID":"cdd32f216ea5242087d4ec8b44743d0c","responseTime":13,"status":200,"url":"/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5?"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":776,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":776,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.824224,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":777,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5fba7d00-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240532,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5fba7d00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":777,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.631284,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5fbaa410-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240532,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5fbaa410-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8","level":"info","message":"auth send jwt","requestID":"a8467893d00a6e39e45f6df4945e3a95"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a8467893d00a6e39e45f6df4945e3a95","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a8467893d00a6e39e45f6df4945e3a95"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:31.319288037Z"}]},"request_id":"1a0b69ec-8ea1-41ac-bec0-a4d6b11de2be","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.6958704} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"5fba7d00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:31.359976351Z"}]},"request_id":"16804381-fa31-4abb-ad1c-2470d3998b4b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.6965175} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"5fbaa410-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":26,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":778,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":778,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.273719,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a8467893d00a6e39e45f6df4945e3a95","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240532,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5fba7d00-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"a8467893d00a6e39e45f6df4945e3a95","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"GET /devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5? 200 38ms","method":"GET","requestID":"5fba7d00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":38,"status":200,"url":"/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5fbaa410-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a? 200 38ms","method":"GET","requestID":"5fbaa410-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":38,"status":200,"url":"/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e"},"level":"info","message":"Building connection plan","requestID":"6d6ecde349c81f7e5f0745b5125a580b"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"8b0c155b-3fa6-4db1-adff-d8c9b3bace63"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"506114b7-b7e5-4265-a34f-8d600488c10b"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"9b5e21da-e442-4d5a-ad00-0e4016a0f363"}]},"level":"info","message":"Built pairwise service configurations","requestID":"6d6ecde349c81f7e5f0745b5125a580b"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"6d6ecde349c81f7e5f0745b5125a580b"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:31.359976351Z"}]},"request_id":"21da461d-76f2-4534-a315-868ef79f4b7a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.7304146} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"5fc0e5a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"a8467893d00a6e39e45f6df4945e3a95","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":779,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":779,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.673886,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"a8467893d00a6e39e45f6df4945e3a95"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5fc0e5a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240532,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzMn0.BsZDPvgJJC0SFuQwMfVFVvGlJ-0PTxKy1zYsU8rmoj8"} gateway-1 | {"time_local":"18/Jun/2025:09:55:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a8467893d00a6e39e45f6df4945e3a95"} device-1 | {"level":"info","message":"GET /devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a? 200 40ms","method":"GET","requestID":"a8467893d00a6e39e45f6df4945e3a95","responseTime":40,"status":200,"url":"/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a?"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5fc0e5a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"e8312b8a-df3c-4e2e-b6ba-dce2e9e01e81","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.7414916} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5bb68299-3b7f-4ff4-a469-fbab116b2bfc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.7417254} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"5fc0e5a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"5fc0e5a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"5fc0e5a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/48ae82a0-a443-4d87-bb6e-88ad79510902'","requestID":"5fc0e5a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/48ae82a0-a443-4d87-bb6e-88ad79510902'","requestID":"5fc0e5a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"5fc0e5a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 51ms","method":"POST","requestID":"5fc0e5a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":51,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"5fc0e5a0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"6d6ecde349c81f7e5f0745b5125a580b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5fcfb2b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":780,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c7acdc15-3190-4023-8e1b-f4040564a2ee","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.8322418} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":780,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.45572,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5fcfb2b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"5fcfb2b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5fcfb2b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5/signaling 200 9ms","method":"POST","requestID":"5fcfb2b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5fd16060-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":781,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":781,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.917573,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:32Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"757f0b3f-d6b0-4ef3-b48f-54b236c6518f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240532.8666074} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5fd16060-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"5fd16060-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5fd16060-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a/signaling 200 34ms","method":"POST","requestID":"5fd16060-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a/signaling"} device-1 | {"device":"c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"48ae82a0-a443-4d87-bb6e-88ad79510902","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"28332eee-dfbf-4330-8ae7-07ed650d5a9a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"48ae82a0-a443-4d87-bb6e-88ad79510902","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"28332eee-dfbf-4330-8ae7-07ed650d5a9a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"28332eee-dfbf-4330-8ae7-07ed650d5a9a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"28332eee-dfbf-4330-8ae7-07ed650d5a9a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"28332eee-dfbf-4330-8ae7-07ed650d5a9a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/48ae82a0-a443-4d87-bb6e-88ad79510902' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"48ae82a0-a443-4d87-bb6e-88ad79510902","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a893d6d2469c1ff332aae603dbf5bba0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a893d6d2469c1ff332aae603dbf5bba0","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/48ae82a0-a443-4d87-bb6e-88ad79510902"}}},"level":"info","message":"received a callback","requestID":"a893d6d2469c1ff332aae603dbf5bba0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"a893d6d2469c1ff332aae603dbf5bba0","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch","requestID":"a893d6d2469c1ff332aae603dbf5bba0"} device-1 | {"device":"c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"48ae82a0-a443-4d87-bb6e-88ad79510902","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"28332eee-dfbf-4330-8ae7-07ed650d5a9a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"28332eee-dfbf-4330-8ae7-07ed650d5a9a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"48ae82a0-a443-4d87-bb6e-88ad79510902","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/48ae82a0-a443-4d87-bb6e-88ad79510902' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"48ae82a0-a443-4d87-bb6e-88ad79510902","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"3e41bd7f78acaa5cd92286a5a940383a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3e41bd7f78acaa5cd92286a5a940383a","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/48ae82a0-a443-4d87-bb6e-88ad79510902"}}},"level":"info","message":"received a callback","requestID":"3e41bd7f78acaa5cd92286a5a940383a"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"610a5590-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":782,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:34Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F48ae82a0-a443-4d87-bb6e-88ad79510902","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"83972369-5f22-4b84-9049-f115308893b6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240534.8933666} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":782,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.188554,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/48ae82a0-a443-4d87-bb6e-88ad79510902","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"610a5590-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/48ae82a0-a443-4d87-bb6e-88ad79510902","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"610a5590-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"610a5590-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/48ae82a0-a443-4d87-bb6e-88ad79510902 200 8ms","method":"GET","requestID":"610a5590-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/peerconnections/48ae82a0-a443-4d87-bb6e-88ad79510902"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 27ms","method":"POST","requestID":"3e41bd7f78acaa5cd92286a5a940383a","responseTime":27,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.030","http_referrer":"","http_user_agent":"node-fetch","requestID":"3e41bd7f78acaa5cd92286a5a940383a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"610d89e0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":783,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:34Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"07579a94-c49b-450e-b107-43589201cfc5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240534.9143803} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":783,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.232092,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"610d89e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"610d89e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"610d89e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a/signaling 200 10ms","method":"POST","requestID":"610d89e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"610f1080-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":784,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:34Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1f7aae59-c63c-4a4b-86f6-13a78694c829","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240534.9247293} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":784,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.193083,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"610f1080-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"610f1080-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"610f1080-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5/signaling 200 10ms","method":"POST","requestID":"610f1080-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNH0.bHTzr1ucUmBhAAydx3vd6Hr9rf4VMpSZoyrkVFbjZvA","level":"info","message":"auth send jwt","requestID":"7739e8342314731ecd530017f4b31fea"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7739e8342314731ecd530017f4b31fea","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e","requestID":"7739e8342314731ecd530017f4b31fea"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":785,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:34Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":785,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.820315,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7739e8342314731ecd530017f4b31fea","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240534,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNH0.bHTzr1ucUmBhAAydx3vd6Hr9rf4VMpSZoyrkVFbjZvA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7739e8342314731ecd530017f4b31fea","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e","requestID":"7739e8342314731ecd530017f4b31fea"} gateway-1 | {"time_local":"18/Jun/2025:09:55:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e HTTP/1.1","status": "200","body_bytes_sent":"1369","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7739e8342314731ecd530017f4b31fea"} experiment-1 | {"level":"info","message":"GET /experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e 200 11ms","method":"GET","requestID":"7739e8342314731ecd530017f4b31fea","responseTime":11,"status":200,"url":"/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNH0.bHTzr1ucUmBhAAydx3vd6Hr9rf4VMpSZoyrkVFbjZvA","level":"info","message":"auth send jwt","requestID":"6cd9a24e31922a30664310a2123c9a8a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6cd9a24e31922a30664310a2123c9a8a","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e","requestID":"6cd9a24e31922a30664310a2123c9a8a"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":786,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:35Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":786,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.745782,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:35Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6cd9a24e31922a30664310a2123c9a8a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240534,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNH0.bHTzr1ucUmBhAAydx3vd6Hr9rf4VMpSZoyrkVFbjZvA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6cd9a24e31922a30664310a2123c9a8a","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e"},"level":"info","message":"Attempting to finish experiment","requestID":"6cd9a24e31922a30664310a2123c9a8a"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"611f8b40-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":787,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:35Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":787,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.693708,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:35Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/48ae82a0-a443-4d87-bb6e-88ad79510902","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"611f8b40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/48ae82a0-a443-4d87-bb6e-88ad79510902","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240534,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNH0.bHTzr1ucUmBhAAydx3vd6Hr9rf4VMpSZoyrkVFbjZvA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"611f8b40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"device":"c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"28332eee-dfbf-4330-8ae7-07ed650d5a9a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"28332eee-dfbf-4330-8ae7-07ed650d5a9a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"28332eee-dfbf-4330-8ae7-07ed650d5a9a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/48ae82a0-a443-4d87-bb6e-88ad79510902' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/48ae82a0-a443-4d87-bb6e-88ad79510902' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"48ae82a0-a443-4d87-bb6e-88ad79510902","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F48ae82a0-a443-4d87-bb6e-88ad79510902': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F48ae82a0-a443-4d87-bb6e-88ad79510902","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"7e8b84d6-03ff-46dc-a302-a734c47cec49","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240535.0418572} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c0e6b437-8f28-449a-acff-3cd714c98cd6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240535.0420907} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"611f8b40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8418f347fa6b5405cf367860b3daca5b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8418f347fa6b5405cf367860b3daca5b","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"94849e074266dc3d4b3c2cea328f45d2","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"94849e074266dc3d4b3c2cea328f45d2","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/48ae82a0-a443-4d87-bb6e-88ad79510902"}}},"level":"info","message":"received a callback","requestID":"8418f347fa6b5405cf367860b3daca5b"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/48ae82a0-a443-4d87-bb6e-88ad79510902"}}},"level":"info","message":"received a callback","requestID":"94849e074266dc3d4b3c2cea328f45d2"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"611f8b40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/48ae82a0-a443-4d87-bb6e-88ad79510902 204 49ms","method":"DELETE","requestID":"611f8b40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":49,"status":204,"url":"/peerconnections/48ae82a0-a443-4d87-bb6e-88ad79510902"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e"},"level":"info","message":"Successfully finished experiment","requestID":"6cd9a24e31922a30664310a2123c9a8a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"61294f40-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":788,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:35Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F28332eee-dfbf-4330-8ae7-07ed650d5a9a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4c1a0505-0510-471c-b121-57dae1003982","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240535.0966983} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":788,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.057796,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"61294f40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"61294f40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"61294f40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a/signaling 200 33ms","method":"POST","requestID":"61294f40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbb98d6cd-b747-49e4-b4d8-de974ec93b4e': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbb98d6cd-b747-49e4-b4d8-de974ec93b4e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"4c7612d1-ca73-4c62-93b8-af84c5a3ea98","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240535.1267402} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"16bbf9c0-70f3-4e7e-9afa-9f6f25f918da","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240535.1269193} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"612ea670-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"6cd9a24e31922a30664310a2123c9a8a","responseTime":37,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":789,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:35Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d16ae53d-c527-4f9d-9b3c-07f839ce7ce8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240535.1312363} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":789,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.250879,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"612ea670-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"612ea670-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"612ea670-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5/signaling 200 8ms","method":"POST","requestID":"612ea670-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e","requestID":"6cd9a24e31922a30664310a2123c9a8a"} gateway-1 | {"time_local":"18/Jun/2025:09:55:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.229","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6cd9a24e31922a30664310a2123c9a8a"} experiment-1 | {"level":"info","message":"DELETE /experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e 204 226ms","method":"DELETE","requestID":"6cd9a24e31922a30664310a2123c9a8a","responseTime":226,"status":204,"url":"/experiments/bb98d6cd-b747-49e4-b4d8-de974ec93b4e"} gateway-1 | {"time_local":"18/Jun/2025:09:55:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3445","request_time":"2.838","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"df80faf76ceb77486b3840a9c7aa5b6d"} gateway-1 | {"time_local":"18/Jun/2025:09:55:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3443","request_time":"2.868","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"3eac324464b01e7a15912556ab928f44"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 180ms","method":"POST","requestID":"8418f347fa6b5405cf367860b3daca5b","responseTime":180,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.182","http_referrer":"","http_user_agent":"node-fetch","requestID":"8418f347fa6b5405cf367860b3daca5b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 179ms","method":"POST","requestID":"94849e074266dc3d4b3c2cea328f45d2","responseTime":179,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.183","http_referrer":"","http_user_agent":"node-fetch","requestID":"94849e074266dc3d4b3c2cea328f45d2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNX0.0uj4o8h48bDWi6HNuv_nzjgdLl7B-Pa2yzpSD00VHHM","level":"info","message":"auth send jwt","requestID":"01170d196a41454ef62334a9807f1353"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"01170d196a41454ef62334a9807f1353","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"01170d196a41454ef62334a9807f1353"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/28332eee-dfbf-4330-8ae7-07ed650d5a9a' closed"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":790,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:35Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":790,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.780375,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:35Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"01170d196a41454ef62334a9807f1353","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240535,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNX0.0uj4o8h48bDWi6HNuv_nzjgdLl7B-Pa2yzpSD00VHHM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"01170d196a41454ef62334a9807f1353","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/c1a3bde2-a7b2-4a05-a1a6-eb1af39799c5' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d1192e54-5665-477d-8025-cdacb5688d8b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240535.2742717} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"01170d196a41454ef62334a9807f1353","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6725c349-264f-45e1-a713-57e147eff798","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240535.2803888} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"01170d196a41454ef62334a9807f1353","responseTime":5,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"c4be3382-c8f1-4843-a853-2c85232f6207","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240535.3143156} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a8e9a58d-c239-42d2-83fc-394a8515edeb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240535.314575} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"01170d196a41454ef62334a9807f1353","responseTime":37,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:35.314285248Z"}]},"request_id":"fea7d5d4-6c59-4f05-b666-ddfae3a3aa36","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240535.319248} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"01170d196a41454ef62334a9807f1353","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"01170d196a41454ef62334a9807f1353"} gateway-1 | {"time_local":"18/Jun/2025:09:55:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.097","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"01170d196a41454ef62334a9807f1353"} device-1 | {"level":"info","message":"POST /devices? 201 90ms","method":"POST","requestID":"01170d196a41454ef62334a9807f1353","responseTime":90,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNX0.0uj4o8h48bDWi6HNuv_nzjgdLl7B-Pa2yzpSD00VHHM","level":"info","message":"auth send jwt","requestID":"9bace16db3192b8cd34a47859191ef9c"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9bace16db3192b8cd34a47859191ef9c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"9bace16db3192b8cd34a47859191ef9c"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":791,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:35Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":791,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.699191,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:35Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9bace16db3192b8cd34a47859191ef9c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240535,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNX0.0uj4o8h48bDWi6HNuv_nzjgdLl7B-Pa2yzpSD00VHHM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"9bace16db3192b8cd34a47859191ef9c","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"64ccc2f1-7759-4746-8d0c-6df0a3eba66b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240535.3694408} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"9bace16db3192b8cd34a47859191ef9c","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"189bdacb-745b-4e1b-a2f6-aefc15590769","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240535.3750534} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"9bace16db3192b8cd34a47859191ef9c","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"567760bb-9693-4311-b352-3fe954e6db2f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240535.4114432} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b6726600-434f-4bad-ba76-4d2c16767805","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240535.4117746} authorization-1 | {"level":"info","message":"POST /relations/update 200 39ms","method":"POST","requestID":"9bace16db3192b8cd34a47859191ef9c","responseTime":39,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:35.411408871Z"}]},"request_id":"674a48a7-79af-4fbb-9588-32ee7871cc4d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240535.4168572} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"9bace16db3192b8cd34a47859191ef9c","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"9bace16db3192b8cd34a47859191ef9c"} gateway-1 | {"time_local":"18/Jun/2025:09:55:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.097","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9bace16db3192b8cd34a47859191ef9c"} device-1 | {"level":"info","message":"POST /devices? 201 93ms","method":"POST","requestID":"9bace16db3192b8cd34a47859191ef9c","responseTime":93,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc","level":"info","message":"auth send jwt","requestID":"1f47afaf0dd9d79e4c849a0d2ddb515f"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1f47afaf0dd9d79e4c849a0d2ddb515f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"1f47afaf0dd9d79e4c849a0d2ddb515f"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":792,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":792,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.755486,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"1f47afaf0dd9d79e4c849a0d2ddb515f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240536,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1f47afaf0dd9d79e4c849a0d2ddb515f","responseTime":3,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc","level":"info","message":"auth send jwt","requestID":"aae27359f4543184582a4d1924b80b15"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"aae27359f4543184582a4d1924b80b15","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"aae27359f4543184582a4d1924b80b15"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":793,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":793,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.631649,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"aae27359f4543184582a4d1924b80b15","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240536,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"aae27359f4543184582a4d1924b80b15","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:35.411408871Z"}]},"request_id":"51995a6a-ba22-431d-a108-a31172b69571","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.33682} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1f47afaf0dd9d79e4c849a0d2ddb515f","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1fd8079c-1d54-4ef4-85c8-a2c34a05b940","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.3421273} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"1f47afaf0dd9d79e4c849a0d2ddb515f","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:35.314285248Z"}]},"request_id":"7a98707b-8fca-41ea-bc99-2d820028467e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.3441} authorization-1 | {"level":"info","message":"POST /relations/query 200 31ms","method":"POST","requestID":"aae27359f4543184582a4d1924b80b15","responseTime":31,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2f47d52f-302b-4479-a799-13f3c56ff0a1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.3768377} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"aae27359f4543184582a4d1924b80b15","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:35.411408871Z"}]},"request_id":"0ddfaf72-f29d-46d6-869e-60ab923fca69","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.3777878} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1f47afaf0dd9d79e4c849a0d2ddb515f","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"1f47afaf0dd9d79e4c849a0d2ddb515f"} gateway-1 | {"time_local":"18/Jun/2025:09:55:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.056","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"1f47afaf0dd9d79e4c849a0d2ddb515f"} device-1 | {"level":"info","message":"PATCH /devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee 200 53ms","method":"PATCH","requestID":"1f47afaf0dd9d79e4c849a0d2ddb515f","responseTime":53,"status":200,"url":"/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc","level":"info","message":"auth send jwt","requestID":"86c6ebeabcd544f550e7a05e27356c61"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"86c6ebeabcd544f550e7a05e27356c61","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"86c6ebeabcd544f550e7a05e27356c61"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":794,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":794,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.598282,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"86c6ebeabcd544f550e7a05e27356c61","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240536,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"86c6ebeabcd544f550e7a05e27356c61","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:35.314285248Z"}]},"request_id":"7cdeae9c-7768-4fdc-ae64-f0f20e5c74b6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.3875642} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"aae27359f4543184582a4d1924b80b15","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"aae27359f4543184582a4d1924b80b15"} gateway-1 | {"time_local":"18/Jun/2025:09:55:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.062","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"aae27359f4543184582a4d1924b80b15"} device-1 | {"level":"info","message":"PATCH /devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf 200 57ms","method":"PATCH","requestID":"aae27359f4543184582a4d1924b80b15","responseTime":57,"status":200,"url":"/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc","level":"info","message":"auth send jwt","requestID":"111c0635d31a513e6f14bf7d4cbe2735"} authentication-1 | {"level":"info","message":"GET /auth 200 30ms","method":"GET","requestID":"111c0635d31a513e6f14bf7d4cbe2735","responseTime":30,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"111c0635d31a513e6f14bf7d4cbe2735"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"86c6ebeabcd544f550e7a05e27356c61"} gateway-1 | {"time_local":"18/Jun/2025:09:55:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.045","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"86c6ebeabcd544f550e7a05e27356c61"} device-1 | {"level":"info","message":"POST /devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee/websocket 200 41ms","method":"POST","requestID":"86c6ebeabcd544f550e7a05e27356c61","responseTime":41,"status":200,"url":"/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee/websocket"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":795,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":795,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.742416,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"111c0635d31a513e6f14bf7d4cbe2735","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240536,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"111c0635d31a513e6f14bf7d4cbe2735","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"device 'http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"111c0635d31a513e6f14bf7d4cbe2735"} device-1 | {"level":"info","message":"POST /devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf/websocket 200 20ms","method":"POST","requestID":"111c0635d31a513e6f14bf7d4cbe2735","responseTime":20,"status":200,"url":"/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:55:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.052","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"111c0635d31a513e6f14bf7d4cbe2735"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc","level":"info","message":"auth send jwt","requestID":"07455058279bc67e72853b7e70d872d1"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"07455058279bc67e72853b7e70d872d1","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"07455058279bc67e72853b7e70d872d1"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":796,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":796,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.67955,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"07455058279bc67e72853b7e70d872d1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240536,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"07455058279bc67e72853b7e70d872d1","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:35.314285248Z"}]},"request_id":"db007353-68b9-47e7-8c9a-947dce32d52c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.485985} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"07455058279bc67e72853b7e70d872d1","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"07455058279bc67e72853b7e70d872d1"} device-1 | {"level":"info","message":"GET /devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf? 200 34ms","method":"GET","requestID":"07455058279bc67e72853b7e70d872d1","responseTime":34,"status":200,"url":"/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"07455058279bc67e72853b7e70d872d1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc","level":"info","message":"auth send jwt","requestID":"80efc03177c55a15dd7f687cd62f7bce"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"80efc03177c55a15dd7f687cd62f7bce","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"80efc03177c55a15dd7f687cd62f7bce"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":797,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":797,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.655451,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"80efc03177c55a15dd7f687cd62f7bce","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240536,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"80efc03177c55a15dd7f687cd62f7bce","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:35.411408871Z"}]},"request_id":"2622b6aa-551e-4263-a5c2-e587f1957014","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.5238614} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"80efc03177c55a15dd7f687cd62f7bce","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"80efc03177c55a15dd7f687cd62f7bce"} gateway-1 | {"time_local":"18/Jun/2025:09:55:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"80efc03177c55a15dd7f687cd62f7bce"} device-1 | {"level":"info","message":"GET /devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee? 200 10ms","method":"GET","requestID":"80efc03177c55a15dd7f687cd62f7bce","responseTime":10,"status":200,"url":"/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc","level":"info","message":"auth send jwt","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":798,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":798,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.652781,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"deb9d4f4ad039b30ee6d218737b3b6ef","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240536,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737"},"level":"info","message":"Attempting to run experiment","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737"},"level":"info","message":"Attempting to book experiment","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737"},"level":"info","message":"Successfully booked experiment","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"620cf880-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6210c910-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":799,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":799,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.677402,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":800,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"620cf880-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240536,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"620cf880-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":800,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.834348,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6210c910-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240536,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6210c910-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:35.314285248Z"}]},"request_id":"3a520a01-a78e-490b-811d-cfedf61b0842","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.6154137} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"620cf880-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:35.411408871Z"}]},"request_id":"25b449c8-bbc9-417a-904c-9d2675421809","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.6161385} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6210c910-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"620cf880-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf? 200 35ms","method":"GET","requestID":"620cf880-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6210c910-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee? 200 11ms","method":"GET","requestID":"6210c910-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737"},"level":"info","message":"Setting up experiment","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737"},"level":"info","message":"Successfully locked booking for experiment","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737"},"level":"info","message":"Successfully set up experiment","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6219c9c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6219f0d0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737"},"level":"info","message":"Successfully running experiment","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":801,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":801,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.761418,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":802,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6219c9c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240536,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6219c9c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":802,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.766187,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6219f0d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240536,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6219f0d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:35.314285248Z"}]},"request_id":"8c26e261-d839-4d33-aa9d-348bca57339f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.676509} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6219c9c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:35.411408871Z"}]},"request_id":"86b635f8-cab4-4b62-bda4-3398a9bd5fa1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.6771536} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6219f0d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6219c9c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf? 200 37ms","method":"GET","requestID":"6219c9c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6219f0d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee? 200 36ms","method":"GET","requestID":"6219f0d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"621fbd30-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb1e8238c-9e02-46ad-9a30-a5e26bf19737#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb1e8238c-9e02-46ad-9a30-a5e26bf19737","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"9b75208b-4f5a-4c2e-94a6-740396eb91a5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.7099516} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cf808929-9b12-4f22-9041-b20150c7624c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.7100868} authorization-1 | {"level":"info","message":"POST /relations/update 200 39ms","method":"POST","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef","responseTime":39,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":803,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4f422fa6-2f31-4852-9f9e-ef33b790b36a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.7124872} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":803,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.360111,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"621fbd30-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"621fbd30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"621fbd30-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf/signaling 200 10ms","method":"POST","requestID":"621fbd30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef"} gateway-1 | {"time_local":"18/Jun/2025:09:55:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1296","request_time":"0.189","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef"} experiment-1 | {"level":"info","message":"POST /experiments? 201 186ms","method":"POST","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef","responseTime":186,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6221b900-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc","level":"info","message":"auth send jwt","requestID":"0fc8eef8a61ad4322a0485a9f2065e53"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0fc8eef8a61ad4322a0485a9f2065e53","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0fc8eef8a61ad4322a0485a9f2065e53"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":804,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":805,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":805,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.629569,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0fc8eef8a61ad4322a0485a9f2065e53","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240536,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"0fc8eef8a61ad4322a0485a9f2065e53","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2336d5c6-0ab1-45ff-840b-f70f8b87ee82","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.7243948} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":804,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.362328,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6221b900-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6221b900-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:35.314285248Z"}]},"request_id":"d76474ba-2e94-4075-b93e-04dcd93fe049","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.728399} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6221b900-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee/signaling 200 33ms","method":"POST","requestID":"6221b900-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"0fc8eef8a61ad4322a0485a9f2065e53","responseTime":26,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"62271030-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"62273740-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0fc8eef8a61ad4322a0485a9f2065e53"} device-1 | {"level":"info","message":"GET /devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf? 200 36ms","method":"GET","requestID":"0fc8eef8a61ad4322a0485a9f2065e53","responseTime":36,"status":200,"url":"/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0fc8eef8a61ad4322a0485a9f2065e53"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Received request.","req_id":806,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"client_addr":"127.0.0.1:42846","level":"info","msg":"Sent response.","req_id":806,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.912265,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":807,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"62271030-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240536,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"62271030-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":807,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.663172,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"62273740-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240536,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"62273740-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc","level":"info","message":"auth send jwt","requestID":"f2f7348237f6725dc0be36f2290a2123"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f2f7348237f6725dc0be36f2290a2123","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"f2f7348237f6725dc0be36f2290a2123"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:35.314285248Z"}]},"request_id":"628c1798-6d28-407b-91c7-c629f8efad9e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.7639022} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"62271030-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:35.411408871Z"}]},"request_id":"9e21e45f-4031-4919-a680-90e43e14a920","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.7651124} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"62273740-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":808,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":808,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.732409,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"62271030-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf? 200 14ms","method":"GET","requestID":"62271030-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf?"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f2f7348237f6725dc0be36f2290a2123","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240536,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"62273740-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f2f7348237f6725dc0be36f2290a2123","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"GET /devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee? 200 13ms","method":"GET","requestID":"62273740-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737"},"level":"info","message":"Building connection plan","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"eb18ef29-5369-47a4-8274-b47b156ecdf5"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"d5cc4cce-ce80-415a-b914-e1348b637f7e"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"fcc3cd1e-c9e9-4c28-91b7-d6261b359a63"}]},"level":"info","message":"Built pairwise service configurations","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"6229a840-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:35.411408871Z"}]},"request_id":"ce8fbb03-f8bd-41b2-9c68-2fa68c5cb764","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.772831} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"f2f7348237f6725dc0be36f2290a2123","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":809,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":809,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.642866,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"f2f7348237f6725dc0be36f2290a2123"} gateway-1 | {"time_local":"18/Jun/2025:09:55:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f2f7348237f6725dc0be36f2290a2123"} device-1 | {"level":"info","message":"GET /devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee? 200 12ms","method":"GET","requestID":"f2f7348237f6725dc0be36f2290a2123","responseTime":12,"status":200,"url":"/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee?"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6229a840-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240536,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzNn0.s5D43W_kDwy8DHUrfhgrYn_-w4HAZno5se-7o9vjCSc"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"6229a840-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"e425a9fc-125e-4475-8645-8fe7e97c75d0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.806977} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c13f1ab3-8338-4e81-ac75-c313b416da75","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.8072886} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"6229a840-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"6229a840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"6229a840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/fa528c43-25b6-4857-a9af-603e412427c0'","requestID":"6229a840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/fa528c43-25b6-4857-a9af-603e412427c0'","requestID":"6229a840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"6229a840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 50ms","method":"POST","requestID":"6229a840-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":50,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"6229a840-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"deb9d4f4ad039b30ee6d218737b3b6ef"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6238ea80-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":810,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"29a05381-e4d3-41a2-ba30-1cb78e1abd58","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.9003208} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":810,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.618583,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6238ea80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6238ea80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6238ea80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf/signaling 200 32ms","method":"POST","requestID":"6238ea80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"623e1aa0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":811,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"34db4246-df50-4db6-8064-564d0dff1daf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240536.910875} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":811,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.856528,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"623e1aa0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"623e1aa0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"623e1aa0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee/signaling 200 9ms","method":"POST","requestID":"623e1aa0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee/signaling"} device-1 | {"device":"d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"fa528c43-25b6-4857-a9af-603e412427c0","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"19c5f811-79cc-4725-992b-6f96c7cbe7ee","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"fa528c43-25b6-4857-a9af-603e412427c0","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"19c5f811-79cc-4725-992b-6f96c7cbe7ee","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"19c5f811-79cc-4725-992b-6f96c7cbe7ee","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"19c5f811-79cc-4725-992b-6f96c7cbe7ee","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"19c5f811-79cc-4725-992b-6f96c7cbe7ee","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fa528c43-25b6-4857-a9af-603e412427c0' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fa528c43-25b6-4857-a9af-603e412427c0","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"3a5a3d3d930531dbc8507bf41de47286","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3a5a3d3d930531dbc8507bf41de47286","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/fa528c43-25b6-4857-a9af-603e412427c0"}}},"level":"info","message":"received a callback","requestID":"3a5a3d3d930531dbc8507bf41de47286"} device-1 | {"device":"d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"3a5a3d3d930531dbc8507bf41de47286","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"3a5a3d3d930531dbc8507bf41de47286"} device-1 | {"data":{"peerconnection":"fa528c43-25b6-4857-a9af-603e412427c0","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"19c5f811-79cc-4725-992b-6f96c7cbe7ee","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"19c5f811-79cc-4725-992b-6f96c7cbe7ee","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"fa528c43-25b6-4857-a9af-603e412427c0","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fa528c43-25b6-4857-a9af-603e412427c0' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fa528c43-25b6-4857-a9af-603e412427c0","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"6a1f63f5e10bb5a5be527fb84c8389c9","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6a1f63f5e10bb5a5be527fb84c8389c9","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/fa528c43-25b6-4857-a9af-603e412427c0"}}},"level":"info","message":"received a callback","requestID":"6a1f63f5e10bb5a5be527fb84c8389c9"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"63758930-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":812,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:38Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffa528c43-25b6-4857-a9af-603e412427c0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"eaf805df-096d-40a2-978d-cb8d60530076","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240538.951583} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":812,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.2171,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fa528c43-25b6-4857-a9af-603e412427c0","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"63758930-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/fa528c43-25b6-4857-a9af-603e412427c0","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"63758930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"63758930-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/fa528c43-25b6-4857-a9af-603e412427c0 200 8ms","method":"GET","requestID":"63758930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/peerconnections/fa528c43-25b6-4857-a9af-603e412427c0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"6a1f63f5e10bb5a5be527fb84c8389c9","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"6a1f63f5e10bb5a5be527fb84c8389c9"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6378e490-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":813,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:38Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6253953f-b9a9-455d-88ce-5619d41a11db","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240538.9738424} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":813,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.248609,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:38Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6378e490-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"6378e490-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6378e490-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee/signaling 200 10ms","method":"POST","requestID":"6378e490-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"637ab950-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":814,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:38Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c7ab669d-9e57-4097-80bd-8ba58edff92e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240539.0101364} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":814,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.799613,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"637ab950-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"637ab950-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"637ab950-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf/signaling 200 33ms","method":"POST","requestID":"637ab950-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf/signaling"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737","requestID":"bdea72e9a0de9f10be082ab49ecabdb8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzOX0.idRNYz-eBBkhf_51PwPw6BpVSCX0Z1HLtFzoXSDrCs0","level":"info","message":"auth send jwt","requestID":"bdea72e9a0de9f10be082ab49ecabdb8"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bdea72e9a0de9f10be082ab49ecabdb8","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":815,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:39Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":815,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.840859,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"bdea72e9a0de9f10be082ab49ecabdb8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240539,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzOX0.idRNYz-eBBkhf_51PwPw6BpVSCX0Z1HLtFzoXSDrCs0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"bdea72e9a0de9f10be082ab49ecabdb8","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737","requestID":"bdea72e9a0de9f10be082ab49ecabdb8"} gateway-1 | {"time_local":"18/Jun/2025:09:55:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737 HTTP/1.1","status": "200","body_bytes_sent":"1369","request_time":"0.033","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bdea72e9a0de9f10be082ab49ecabdb8"} experiment-1 | {"level":"info","message":"GET /experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737 200 28ms","method":"GET","requestID":"bdea72e9a0de9f10be082ab49ecabdb8","responseTime":28,"status":200,"url":"/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzOX0.idRNYz-eBBkhf_51PwPw6BpVSCX0Z1HLtFzoXSDrCs0","level":"info","message":"auth send jwt","requestID":"885f838692db3691fe24eeb004ff1fdd"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"885f838692db3691fe24eeb004ff1fdd","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737","requestID":"885f838692db3691fe24eeb004ff1fdd"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":816,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:39Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":816,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.950895,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:39Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"885f838692db3691fe24eeb004ff1fdd","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240539,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzOX0.idRNYz-eBBkhf_51PwPw6BpVSCX0Z1HLtFzoXSDrCs0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"885f838692db3691fe24eeb004ff1fdd","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737"},"level":"info","message":"Attempting to finish experiment","requestID":"885f838692db3691fe24eeb004ff1fdd"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"6389ad70-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":817,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:39Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":817,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.746269,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:39Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fa528c43-25b6-4857-a9af-603e412427c0","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6389ad70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/fa528c43-25b6-4857-a9af-603e412427c0","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240539,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzOX0.idRNYz-eBBkhf_51PwPw6BpVSCX0Z1HLtFzoXSDrCs0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6389ad70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"device":"19c5f811-79cc-4725-992b-6f96c7cbe7ee","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"19c5f811-79cc-4725-992b-6f96c7cbe7ee","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"19c5f811-79cc-4725-992b-6f96c7cbe7ee","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fa528c43-25b6-4857-a9af-603e412427c0' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/fa528c43-25b6-4857-a9af-603e412427c0' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fa528c43-25b6-4857-a9af-603e412427c0","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffa528c43-25b6-4857-a9af-603e412427c0': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffa528c43-25b6-4857-a9af-603e412427c0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"fb053a05-baaf-4022-8f4a-8b321f75ddf9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240539.1165173} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9c6c968b-bc7b-498d-8e4e-b4985c2e941b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240539.1167607} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"6389ad70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"54405cd4f6eb2c2068d2d923891592e6","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"54405cd4f6eb2c2068d2d923891592e6","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0ca9828e297cdaab6d17bcf87bd357e2","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"0ca9828e297cdaab6d17bcf87bd357e2","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fa528c43-25b6-4857-a9af-603e412427c0"}}},"level":"info","message":"received a callback","requestID":"54405cd4f6eb2c2068d2d923891592e6"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fa528c43-25b6-4857-a9af-603e412427c0"}}},"level":"info","message":"received a callback","requestID":"0ca9828e297cdaab6d17bcf87bd357e2"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"6389ad70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/fa528c43-25b6-4857-a9af-603e412427c0 204 51ms","method":"DELETE","requestID":"6389ad70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":51,"status":204,"url":"/peerconnections/fa528c43-25b6-4857-a9af-603e412427c0"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737"},"level":"info","message":"Successfully finished experiment","requestID":"885f838692db3691fe24eeb004ff1fdd"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6396a5c0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":818,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:39Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19c5f811-79cc-4725-992b-6f96c7cbe7ee","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"41482764-e29e-4c88-91fa-1d250108a35c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240539.167921} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":818,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.296215,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6396a5c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6396a5c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6396a5c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee/signaling 200 7ms","method":"POST","requestID":"6396a5c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"63980550-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb1e8238c-9e02-46ad-9a30-a5e26bf19737': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb1e8238c-9e02-46ad-9a30-a5e26bf19737","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"1d796e6e-3552-4f7c-9fb7-735a632eaa4b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240539.1747005} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a16e346e-13b5-4261-b5ca-0a1c421465e1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240539.1749349} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"885f838692db3691fe24eeb004ff1fdd","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":819,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:39Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"44f434bc-f7ad-447e-bfe4-b0a8252a5b7c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240539.203945} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":819,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":28.061667,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"63980550-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"63980550-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"63980550-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf/signaling 200 35ms","method":"POST","requestID":"63980550-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737","requestID":"885f838692db3691fe24eeb004ff1fdd"} gateway-1 | {"time_local":"18/Jun/2025:09:55:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.232","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"885f838692db3691fe24eeb004ff1fdd"} experiment-1 | {"level":"info","message":"DELETE /experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737 204 229ms","method":"DELETE","requestID":"885f838692db3691fe24eeb004ff1fdd","responseTime":229,"status":204,"url":"/experiments/b1e8238c-9e02-46ad-9a30-a5e26bf19737"} gateway-1 | {"time_local":"18/Jun/2025:09:55:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3443","request_time":"2.871","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"35f55a9a08f9aad6b34ef83ba5338b38"} gateway-1 | {"time_local":"18/Jun/2025:09:55:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3445","request_time":"2.833","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"4c0a5687b63796aa4829e41743f49665"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 181ms","method":"POST","requestID":"54405cd4f6eb2c2068d2d923891592e6","responseTime":181,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.183","http_referrer":"","http_user_agent":"node-fetch","requestID":"54405cd4f6eb2c2068d2d923891592e6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 180ms","method":"POST","requestID":"0ca9828e297cdaab6d17bcf87bd357e2","responseTime":180,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.184","http_referrer":"","http_user_agent":"node-fetch","requestID":"0ca9828e297cdaab6d17bcf87bd357e2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzOX0.idRNYz-eBBkhf_51PwPw6BpVSCX0Z1HLtFzoXSDrCs0","level":"info","message":"auth send jwt","requestID":"5edc21209fddfd75ca15b51005af8e46"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5edc21209fddfd75ca15b51005af8e46","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"5edc21209fddfd75ca15b51005af8e46"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d53a8ad5-fff2-4dcf-bf43-ba9ae1aac5bf' closed"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":820,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:39Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":820,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.85159,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5edc21209fddfd75ca15b51005af8e46","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240539,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzOX0.idRNYz-eBBkhf_51PwPw6BpVSCX0Z1HLtFzoXSDrCs0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5edc21209fddfd75ca15b51005af8e46","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/19c5f811-79cc-4725-992b-6f96c7cbe7ee' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"fe5b3fde-43ca-4d1f-a167-89cf56a33776","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240539.326654} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"5edc21209fddfd75ca15b51005af8e46","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8e5242aa-f9b1-428d-9701-76da7ef52ac5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240539.3322582} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"5edc21209fddfd75ca15b51005af8e46","responseTime":5,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"267f7036-c102-4e20-9fae-ccfafdb67db2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240539.3418334} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6b23111c-8670-4f08-84bc-d2f463e25232","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240539.3418367} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"5edc21209fddfd75ca15b51005af8e46","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:39.341796580Z"}]},"request_id":"e24778ae-41cb-47c9-8687-c2af7ba32ac7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240539.3474796} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5edc21209fddfd75ca15b51005af8e46","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"5edc21209fddfd75ca15b51005af8e46"} gateway-1 | {"time_local":"18/Jun/2025:09:55:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.050","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5edc21209fddfd75ca15b51005af8e46"} device-1 | {"level":"info","message":"POST /devices? 201 45ms","method":"POST","requestID":"5edc21209fddfd75ca15b51005af8e46","responseTime":45,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzOX0.idRNYz-eBBkhf_51PwPw6BpVSCX0Z1HLtFzoXSDrCs0","level":"info","message":"auth send jwt","requestID":"62a37c3638b48e9ee5342e094b0b67a0"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"62a37c3638b48e9ee5342e094b0b67a0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"62a37c3638b48e9ee5342e094b0b67a0"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":821,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:39Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":821,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.888958,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"62a37c3638b48e9ee5342e094b0b67a0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240539,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDUzOX0.idRNYz-eBBkhf_51PwPw6BpVSCX0Z1HLtFzoXSDrCs0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"62a37c3638b48e9ee5342e094b0b67a0","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0be786de-3a01-463c-b901-a7b8ef3400c9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240539.3726366} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"62a37c3638b48e9ee5342e094b0b67a0","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"da5d69cc-1f1d-4240-85bd-6ee5846a0855","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240539.3775985} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"62a37c3638b48e9ee5342e094b0b67a0","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"dc9f3109-637e-4ab9-858d-3d8073e4a034","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240539.3896291} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4fd43f9d-947e-4a56-971c-dd8c5c284c78","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240539.3898895} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"62a37c3638b48e9ee5342e094b0b67a0","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:39.389596627Z"}]},"request_id":"c37c05cb-43fa-4a64-9102-b74feef3e0ed","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240539.3940341} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"62a37c3638b48e9ee5342e094b0b67a0","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"62a37c3638b48e9ee5342e094b0b67a0"} gateway-1 | {"time_local":"18/Jun/2025:09:55:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"62a37c3638b48e9ee5342e094b0b67a0"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"62a37c3638b48e9ee5342e094b0b67a0","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d98d7768f6d6c26bd70bc93ecf3182c3","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d98d7768f6d6c26bd70bc93ecf3182c3","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/cee98ee2-f8be-48ab-97fa-15ad570bf696/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d98d7768f6d6c26bd70bc93ecf3182c3"} device-1 | {"level":"info","message":"OPTIONS /devices/cee98ee2-f8be-48ab-97fa-15ad570bf696/websocket 200 1ms","method":"OPTIONS","requestID":"d98d7768f6d6c26bd70bc93ecf3182c3","responseTime":1,"status":200,"url":"/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c70bd5bacbe295db83818d1c261cf4ae","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c70bd5bacbe295db83818d1c261cf4ae","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c70bd5bacbe295db83818d1c261cf4ae"} device-1 | {"level":"info","message":"OPTIONS /devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8/websocket 200 1ms","method":"OPTIONS","requestID":"c70bd5bacbe295db83818d1c261cf4ae","responseTime":1,"status":200,"url":"/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc","level":"info","message":"auth send jwt","requestID":"77c424032526093cc09a771416ab9d29"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"77c424032526093cc09a771416ab9d29","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"77c424032526093cc09a771416ab9d29"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":822,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:41Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc","level":"info","message":"auth send jwt","requestID":"94133fbe6c5c52604486cd083b81f885"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"94133fbe6c5c52604486cd083b81f885","responseTime":5,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":822,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.013195,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:41Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"94133fbe6c5c52604486cd083b81f885"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"77c424032526093cc09a771416ab9d29","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240541,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"77c424032526093cc09a771416ab9d29","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":823,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:41Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":823,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.342017,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"94133fbe6c5c52604486cd083b81f885","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240541,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"94133fbe6c5c52604486cd083b81f885","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"77c424032526093cc09a771416ab9d29"} device-1 | {"level":"info","message":"POST /devices/cee98ee2-f8be-48ab-97fa-15ad570bf696/websocket 200 27ms","method":"POST","requestID":"77c424032526093cc09a771416ab9d29","responseTime":27,"status":200,"url":"/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:55:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/cee98ee2-f8be-48ab-97fa-15ad570bf696/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.034","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"77c424032526093cc09a771416ab9d29"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"94133fbe6c5c52604486cd083b81f885"} gateway-1 | {"time_local":"18/Jun/2025:09:55:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.040","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"94133fbe6c5c52604486cd083b81f885"} device-1 | {"level":"info","message":"POST /devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8/websocket 200 30ms","method":"POST","requestID":"94133fbe6c5c52604486cd083b81f885","responseTime":30,"status":200,"url":"/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"1fa94b219711df687cee223b66a7a6e2","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1fa94b219711df687cee223b66a7a6e2","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/cee98ee2-f8be-48ab-97fa-15ad570bf696? 200 1ms","method":"OPTIONS","requestID":"1fa94b219711df687cee223b66a7a6e2","responseTime":1,"status":200,"url":"/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/cee98ee2-f8be-48ab-97fa-15ad570bf696? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1fa94b219711df687cee223b66a7a6e2"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"7e9c981d6bda93a47a91a267bf050bd0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"7e9c981d6bda93a47a91a267bf050bd0","responseTime":0,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc","level":"info","message":"auth send jwt","requestID":"bf3886ec9eaa43b61e9731258e4c64f6"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bf3886ec9eaa43b61e9731258e4c64f6","responseTime":3,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7e9c981d6bda93a47a91a267bf050bd0"} device-1 | {"level":"info","message":"OPTIONS /devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8? 200 1ms","method":"OPTIONS","requestID":"7e9c981d6bda93a47a91a267bf050bd0","responseTime":1,"status":200,"url":"/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8?"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"bf3886ec9eaa43b61e9731258e4c64f6"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":824,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:41Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":824,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.803157,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"bf3886ec9eaa43b61e9731258e4c64f6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240541,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"bf3886ec9eaa43b61e9731258e4c64f6","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc","level":"info","message":"auth send jwt","requestID":"4555206b40e44003562178b720ca07e0"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4555206b40e44003562178b720ca07e0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"4555206b40e44003562178b720ca07e0"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":825,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:41Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":825,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.769497,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4555206b40e44003562178b720ca07e0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240541,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4555206b40e44003562178b720ca07e0","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:39.341796580Z"}]},"request_id":"e73424fb-91f6-470d-8465-9dcaa9e9b7e5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240541.7593746} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"bf3886ec9eaa43b61e9731258e4c64f6","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bdb0d4db-0d0e-470e-a361-c85f84e4cd74","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240541.765898} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"bf3886ec9eaa43b61e9731258e4c64f6","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:39.389596627Z"}]},"request_id":"0c34d625-8350-47fa-b81f-5398e63d4c87","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240541.7668889} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4555206b40e44003562178b720ca07e0","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"27f1e77d-eb41-4045-aca0-d623e42ca1ab","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240541.7961702} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"4555206b40e44003562178b720ca07e0","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:39.341796580Z"}]},"request_id":"eae1a873-26a9-4951-a7fd-8172ae5e5ab9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240541.8000145} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"bf3886ec9eaa43b61e9731258e4c64f6","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"bf3886ec9eaa43b61e9731258e4c64f6"} gateway-1 | {"time_local":"18/Jun/2025:09:55:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/cee98ee2-f8be-48ab-97fa-15ad570bf696? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.059","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"bf3886ec9eaa43b61e9731258e4c64f6"} device-1 | {"level":"info","message":"PATCH /devices/cee98ee2-f8be-48ab-97fa-15ad570bf696? 200 55ms","method":"PATCH","requestID":"bf3886ec9eaa43b61e9731258e4c64f6","responseTime":55,"status":200,"url":"/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:39.389596627Z"}]},"request_id":"80132db1-06c4-42ce-985d-e8a8af534b55","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240541.8094282} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4555206b40e44003562178b720ca07e0","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"4555206b40e44003562178b720ca07e0"} gateway-1 | {"time_local":"18/Jun/2025:09:55:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.063","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4555206b40e44003562178b720ca07e0"} device-1 | {"level":"info","message":"PATCH /devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8? 200 57ms","method":"PATCH","requestID":"4555206b40e44003562178b720ca07e0","responseTime":57,"status":200,"url":"/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc","level":"info","message":"auth send jwt","requestID":"ef6e8c37e350a5ffb953351f4f6e0bc2"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ef6e8c37e350a5ffb953351f4f6e0bc2","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ef6e8c37e350a5ffb953351f4f6e0bc2"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":826,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:41Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":826,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.596508,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ef6e8c37e350a5ffb953351f4f6e0bc2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240541,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ef6e8c37e350a5ffb953351f4f6e0bc2","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:39.341796580Z"}]},"request_id":"f90b79d2-e0e9-49d9-8e5f-9fc6b9449a7e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240541.8468852} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"ef6e8c37e350a5ffb953351f4f6e0bc2","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ef6e8c37e350a5ffb953351f4f6e0bc2"} gateway-1 | {"time_local":"18/Jun/2025:09:55:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cee98ee2-f8be-48ab-97fa-15ad570bf696? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.033","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ef6e8c37e350a5ffb953351f4f6e0bc2"} device-1 | {"level":"info","message":"GET /devices/cee98ee2-f8be-48ab-97fa-15ad570bf696? 200 30ms","method":"GET","requestID":"ef6e8c37e350a5ffb953351f4f6e0bc2","responseTime":30,"status":200,"url":"/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc","level":"info","message":"auth send jwt","requestID":"a1806e073b122d1726653f969ca7b5f8"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a1806e073b122d1726653f969ca7b5f8","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a1806e073b122d1726653f969ca7b5f8"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":827,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:41Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":827,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.641103,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a1806e073b122d1726653f969ca7b5f8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240541,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"a1806e073b122d1726653f969ca7b5f8","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:39.389596627Z"}]},"request_id":"0f36e517-6843-432c-b6d1-b5d49708f441","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240541.8602104} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a1806e073b122d1726653f969ca7b5f8","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"a1806e073b122d1726653f969ca7b5f8"} gateway-1 | {"time_local":"18/Jun/2025:09:55:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a1806e073b122d1726653f969ca7b5f8"} device-1 | {"level":"info","message":"GET /devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8? 200 9ms","method":"GET","requestID":"a1806e073b122d1726653f969ca7b5f8","responseTime":9,"status":200,"url":"/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc","level":"info","message":"auth send jwt","requestID":"5b93a5913c197daf4341fea02eb3e469"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5b93a5913c197daf4341fea02eb3e469","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"5b93a5913c197daf4341fea02eb3e469"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":828,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:41Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":828,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.907562,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:41Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5b93a5913c197daf4341fea02eb3e469","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240541,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5b93a5913c197daf4341fea02eb3e469","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88"},"level":"info","message":"Attempting to run experiment","requestID":"5b93a5913c197daf4341fea02eb3e469"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88"},"level":"info","message":"Attempting to book experiment","requestID":"5b93a5913c197daf4341fea02eb3e469"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88"},"level":"info","message":"Successfully booked experiment","requestID":"5b93a5913c197daf4341fea02eb3e469"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"653ded20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"653e1430-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":829,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:41Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":829,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.942308,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"653ded20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240541,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"653ded20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":830,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:41Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":830,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.739541,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"653e1430-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240541,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"653e1430-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:39.341796580Z"}]},"request_id":"37200fe6-3836-48c7-80de-025c45151330","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240541.949673} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:39.389596627Z"}]},"request_id":"cd9e8d45-e49d-4796-aefc-6e8782dec702","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240541.9498997} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"653ded20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"653e1430-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"653ded20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/cee98ee2-f8be-48ab-97fa-15ad570bf696? 200 17ms","method":"GET","requestID":"653ded20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":17,"status":200,"url":"/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"653e1430-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8? 200 16ms","method":"GET","requestID":"653e1430-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":16,"status":200,"url":"/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88"},"level":"info","message":"Setting up experiment","requestID":"5b93a5913c197daf4341fea02eb3e469"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"5b93a5913c197daf4341fea02eb3e469"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"5b93a5913c197daf4341fea02eb3e469"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88"},"level":"info","message":"Successfully locked booking for experiment","requestID":"5b93a5913c197daf4341fea02eb3e469"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88"},"level":"info","message":"Successfully set up experiment","requestID":"5b93a5913c197daf4341fea02eb3e469"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"65489b80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"654c6c10-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88"},"level":"info","message":"Successfully running experiment","requestID":"5b93a5913c197daf4341fea02eb3e469"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":831,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":831,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.773187,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":832,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"65489b80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240541,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"65489b80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":832,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.37187,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"654c6c10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240541,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"654c6c10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:39.341796580Z"}]},"request_id":"ad531146-6eb5-4914-b679-799cd88ff65a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.041698} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"65489b80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:39.389596627Z"}]},"request_id":"c025fb7b-0775-44b0-86dd-595d7ea12a87","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.0423284} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"654c6c10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"65489b80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/cee98ee2-f8be-48ab-97fa-15ad570bf696? 200 38ms","method":"GET","requestID":"65489b80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":38,"status":200,"url":"/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"654c6c10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8? 200 14ms","method":"GET","requestID":"654c6c10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe90f6ef4-f359-4028-9477-d8b21f440a88#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe90f6ef4-f359-4028-9477-d8b21f440a88","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"862d46c2-31da-4fa2-9435-d47d3b5ed448","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.0472457} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f764add6-b956-4718-888f-8d961aeba988","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.0475707} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"5b93a5913c197daf4341fea02eb3e469","responseTime":12,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"654f0420-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":833,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3ff055d3-6fdf-4aaa-8c63-84dfd840efcb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.054144} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":833,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.601391,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"654f0420-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"5b93a5913c197daf4341fea02eb3e469"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"654f0420-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /experiments? 201 214ms","method":"POST","requestID":"5b93a5913c197daf4341fea02eb3e469","responseTime":214,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1288","request_time":"0.216","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5b93a5913c197daf4341fea02eb3e469"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"654f0420-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/cee98ee2-f8be-48ab-97fa-15ad570bf696/signaling 200 34ms","method":"POST","requestID":"654f0420-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0Mn0.2pz5QAo6QkdD-aMk89sFxV2Z8qPLqUZ1k8jp8AGVxSM","level":"info","message":"auth send jwt","requestID":"62ea7f2e9a166a768388b28b61e123e6"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"62ea7f2e9a166a768388b28b61e123e6","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"62ea7f2e9a166a768388b28b61e123e6"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6554d080-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":834,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":834,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.894504,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":835,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"62ea7f2e9a166a768388b28b61e123e6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240542,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0Mn0.2pz5QAo6QkdD-aMk89sFxV2Z8qPLqUZ1k8jp8AGVxSM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"62ea7f2e9a166a768388b28b61e123e6","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"06e79382-11ae-4579-90ea-5b1568f27c10","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.0923939} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":835,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.669936,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6554d080-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"6554d080-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:39.341796580Z"}]},"request_id":"f0937c9b-1830-4972-83f2-0e7124aefed6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.09453} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"62ea7f2e9a166a768388b28b61e123e6","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6554d080-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8/signaling 200 11ms","method":"POST","requestID":"6554d080-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"62ea7f2e9a166a768388b28b61e123e6"} gateway-1 | {"time_local":"18/Jun/2025:09:55:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cee98ee2-f8be-48ab-97fa-15ad570bf696? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"62ea7f2e9a166a768388b28b61e123e6"} device-1 | {"level":"info","message":"GET /devices/cee98ee2-f8be-48ab-97fa-15ad570bf696? 200 14ms","method":"GET","requestID":"62ea7f2e9a166a768388b28b61e123e6","responseTime":14,"status":200,"url":"/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"5b93a5913c197daf4341fea02eb3e469"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"65571a70-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0Mn0.2pz5QAo6QkdD-aMk89sFxV2Z8qPLqUZ1k8jp8AGVxSM","level":"info","message":"auth send jwt","requestID":"15b91bba3a54cf5564c41e17e2b2ccf1"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"15b91bba3a54cf5564c41e17e2b2ccf1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"65574180-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":836,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":836,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.877882,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":837,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"65571a70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240541,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"65571a70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":837,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.613619,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"15b91bba3a54cf5564c41e17e2b2ccf1"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"65574180-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240541,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"65574180-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":838,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":838,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.86928,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"15b91bba3a54cf5564c41e17e2b2ccf1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240542,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0Mn0.2pz5QAo6QkdD-aMk89sFxV2Z8qPLqUZ1k8jp8AGVxSM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"15b91bba3a54cf5564c41e17e2b2ccf1","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:39.389596627Z"}]},"request_id":"3313599c-35a6-4eab-9eb8-2864cf17bb4e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.1399093} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:39.341796580Z"}]},"request_id":"f0fba5ad-abb6-4912-893d-97a8bcef257a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.1406193} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:39.389596627Z"}]},"request_id":"5743371b-a21f-4b77-87b4-d1b55a9c8b73","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.1413486} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","method":"POST","requestID":"65574180-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"65571a70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 8ms","method":"POST","requestID":"15b91bba3a54cf5564c41e17e2b2ccf1","responseTime":8,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"65574180-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8? 200 48ms","method":"GET","requestID":"65574180-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":48,"status":200,"url":"/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"65571a70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/cee98ee2-f8be-48ab-97fa-15ad570bf696? 200 75ms","method":"GET","requestID":"65571a70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":75,"status":200,"url":"/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88"},"level":"info","message":"Building connection plan","requestID":"5b93a5913c197daf4341fea02eb3e469"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"9832035d-873c-464d-8d31-17a0737bb376"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"ea0e3cd1-2b96-4aa9-ae8c-4dee52143056"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"01993af9-55d9-42be-ba8d-2dc1424c916b"}]},"level":"info","message":"Built pairwise service configurations","requestID":"5b93a5913c197daf4341fea02eb3e469"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"65632860-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"65632860-4c2a-11f0-b702-8b8a85c3ad9a"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"15b91bba3a54cf5564c41e17e2b2ccf1"} gateway-1 | {"time_local":"18/Jun/2025:09:55:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.082","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"15b91bba3a54cf5564c41e17e2b2ccf1"} device-1 | {"level":"info","message":"GET /devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8? 200 50ms","method":"GET","requestID":"15b91bba3a54cf5564c41e17e2b2ccf1","responseTime":50,"status":200,"url":"/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8?"} forwarding-1 | {"level":"info","message":"POST /rooms 201 2ms","method":"POST","requestID":"65632860-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":2,"status":201,"url":"/rooms"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/f35921b9-32db-4115-b124-9de13495582c?id=79ebc7d7-27e1-4312-ad46-fbcdfbbbc02d","ws://localhost/rooms/f35921b9-32db-4115-b124-9de13495582c?id=389cd16f-fe16-46a2-a48c-9f749f2c0044"]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"5b93a5913c197daf4341fea02eb3e469"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"6563ebb0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":839,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":839,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.669122,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6563ebb0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240541,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0MX0.M2Qcb3Ier-ge4andJEIKCeSYe01WwuQjb5J17unpHEc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6563ebb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"dc18964e-f5ea-4617-af3f-609a7e23c16f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.198401} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"13fbe768-6516-4835-84b8-69f4572e2f14","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.1985931} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"6563ebb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"6563ebb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"6563ebb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01'","requestID":"6563ebb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01'","requestID":"6563ebb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"6563ebb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 50ms","method":"POST","requestID":"6563ebb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":50,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"6563ebb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7302c393-8471-4e2b-8c0b-e60e97b8af01","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"656d1370-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"79ebc7d7-27e1-4312-ad46-fbcdfbbbc02d\" in room \"http://localhost/rooms/f35921b9-32db-4115-b124-9de13495582c\"","requestID":"656d1370-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"656d1370-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"234442b5c76edb466e96a1368aa02382","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"656d3a80-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"GET /auth 200 25ms","method":"GET","requestID":"234442b5c76edb466e96a1368aa02382","responseTime":25,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"389cd16f-fe16-46a2-a48c-9f749f2c0044\" in room \"http://localhost/rooms/f35921b9-32db-4115-b124-9de13495582c\"","requestID":"656d3a80-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"656d3a80-4c2a-11f0-b702-8b8a85c3ad9a"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01"}}},"level":"info","message":"received a callback","requestID":"234442b5c76edb466e96a1368aa02382"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"79ebc7d7-27e1-4312-ad46-fbcdfbbbc02d\" in room \"http://localhost/rooms/f35921b9-32db-4115-b124-9de13495582c\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"79ebc7d7-27e1-4312-ad46-fbcdfbbbc02d\" in room \"http://localhost/rooms/f35921b9-32db-4115-b124-9de13495582c\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"79ebc7d7-27e1-4312-ad46-fbcdfbbbc02d\" in room \"http://localhost/rooms/f35921b9-32db-4115-b124-9de13495582c\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"79ebc7d7-27e1-4312-ad46-fbcdfbbbc02d\" in room \"http://localhost/rooms/f35921b9-32db-4115-b124-9de13495582c\""} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"234442b5c76edb466e96a1368aa02382","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.035","http_referrer":"","http_user_agent":"node-fetch","requestID":"234442b5c76edb466e96a1368aa02382"} device-1 | {"data":{"peerconnection":"7302c393-8471-4e2b-8c0b-e60e97b8af01","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"5b93a5913c197daf4341fea02eb3e469"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"65741850-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"data":{"peerconnection":"7302c393-8471-4e2b-8c0b-e60e97b8af01","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":840,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"97228ad8-98e4-4778-8bee-08f8805d2cc8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.3210757} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":840,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.428879,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"65741850-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"65741850-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7302c393-8471-4e2b-8c0b-e60e97b8af01","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"65741850-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/cee98ee2-f8be-48ab-97fa-15ad570bf696/signaling 200 37ms","method":"POST","requestID":"65741850-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696/signaling"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a452267b175842eaec5f9b2e0e88fb3d","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a452267b175842eaec5f9b2e0e88fb3d","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"657a0bc0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01"}}},"level":"info","message":"received a callback","requestID":"a452267b175842eaec5f9b2e0e88fb3d"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":841,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"74975b43-4979-49ad-9f02-c4f884d2473c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.337112} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":841,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.523155,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"657a0bc0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"657a0bc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"657b4440-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"657a0bc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8/signaling 200 10ms","method":"POST","requestID":"657a0bc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8/signaling"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":842,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7302c393-8471-4e2b-8c0b-e60e97b8af01","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"02fc7d19-e63c-4d1e-8f5a-d4d19bc304f7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.3442667} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":842,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":26.569964,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"657b4440-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"657b4440-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"657b4440-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01 200 32ms","method":"GET","requestID":"657b4440-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0Mn0.2pz5QAo6QkdD-aMk89sFxV2Z8qPLqUZ1k8jp8AGVxSM","level":"info","message":"auth send jwt","requestID":"caf55e93dc8aa2ae551af60ea1b97271"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"caf55e93dc8aa2ae551af60ea1b97271","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/e90f6ef4-f359-4028-9477-d8b21f440a88","requestID":"caf55e93dc8aa2ae551af60ea1b97271"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":843,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":843,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.569504,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"caf55e93dc8aa2ae551af60ea1b97271","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240542,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0Mn0.2pz5QAo6QkdD-aMk89sFxV2Z8qPLqUZ1k8jp8AGVxSM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"caf55e93dc8aa2ae551af60ea1b97271","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 55ms","method":"POST","requestID":"a452267b175842eaec5f9b2e0e88fb3d","responseTime":55,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.059","http_referrer":"","http_user_agent":"node-fetch","requestID":"a452267b175842eaec5f9b2e0e88fb3d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6582be50-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":844,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/e90f6ef4-f359-4028-9477-d8b21f440a88","requestID":"caf55e93dc8aa2ae551af60ea1b97271"} experiment-1 | {"level":"info","message":"GET /experiments/e90f6ef4-f359-4028-9477-d8b21f440a88 200 11ms","method":"GET","requestID":"caf55e93dc8aa2ae551af60ea1b97271","responseTime":11,"status":200,"url":"/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0Mn0.2pz5QAo6QkdD-aMk89sFxV2Z8qPLqUZ1k8jp8AGVxSM","level":"info","message":"auth send jwt","requestID":"7d9aba0bb9db2db8fc7584699c80ecc4"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7d9aba0bb9db2db8fc7584699c80ecc4","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/e90f6ef4-f359-4028-9477-d8b21f440a88 HTTP/1.1","status": "200","body_bytes_sent":"1361","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"caf55e93dc8aa2ae551af60ea1b97271"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/e90f6ef4-f359-4028-9477-d8b21f440a88","requestID":"7d9aba0bb9db2db8fc7584699c80ecc4"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5a76c0d9-df37-4d65-853e-43fe690ff7c4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.4215405} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":844,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":30.646483,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6582be50-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 33ms","method":"POST","requestID":"6582be50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":845,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":845,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.894272,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6582be50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8/signaling 200 37ms","method":"POST","requestID":"6582be50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8/signaling"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7d9aba0bb9db2db8fc7584699c80ecc4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240542,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0Mn0.2pz5QAo6QkdD-aMk89sFxV2Z8qPLqUZ1k8jp8AGVxSM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7d9aba0bb9db2db8fc7584699c80ecc4","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6588d8d0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":846,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88"},"level":"info","message":"Attempting to finish experiment","requestID":"7d9aba0bb9db2db8fc7584699c80ecc4"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"65899c20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f7676c3c-3e72-4432-9866-0862e38c8e5e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.4344304} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":846,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.151757,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6588d8d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"6588d8d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":847,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":847,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.113137,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6588d8d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/cee98ee2-f8be-48ab-97fa-15ad570bf696/signaling 200 36ms","method":"POST","requestID":"6588d8d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696/signaling"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"65899c20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240542,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0Mn0.2pz5QAo6QkdD-aMk89sFxV2Z8qPLqUZ1k8jp8AGVxSM"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"65899c20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01","device":"38404fb9-d3cf-49f9-b2e9-df3b363a47a8","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01","device":"cee98ee2-f8be-48ab-97fa-15ad570bf696","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7302c393-8471-4e2b-8c0b-e60e97b8af01","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} gateway-1 | {"time_local":"18/Jun/2025:09:55:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/f35921b9-32db-4115-b124-9de13495582c?id=79ebc7d7-27e1-4312-ad46-fbcdfbbbc02d HTTP/1.1","status": "101","body_bytes_sent":"438","request_time":"0.229","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"94171506495dd919910b0771424bd689"} gateway-1 | {"time_local":"18/Jun/2025:09:55:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/f35921b9-32db-4115-b124-9de13495582c?id=389cd16f-fe16-46a2-a48c-9f749f2c0044 HTTP/1.1","status": "101","body_bytes_sent":"2","request_time":"0.228","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a482397a4bea802a45c13fff66920e19"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"79ebc7d7-27e1-4312-ad46-fbcdfbbbc02d\" in room \"http://localhost/rooms/f35921b9-32db-4115-b124-9de13495582c\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"79ebc7d7-27e1-4312-ad46-fbcdfbbbc02d\" from room \"http://localhost/rooms/f35921b9-32db-4115-b124-9de13495582c\", code: 1005, reason: "} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"389cd16f-fe16-46a2-a48c-9f749f2c0044\" in room \"http://localhost/rooms/f35921b9-32db-4115-b124-9de13495582c\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"389cd16f-fe16-46a2-a48c-9f749f2c0044\" from room \"http://localhost/rooms/f35921b9-32db-4115-b124-9de13495582c\", code: 1005, reason: "} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7302c393-8471-4e2b-8c0b-e60e97b8af01': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7302c393-8471-4e2b-8c0b-e60e97b8af01","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"827b6bf5-685d-47e8-a033-c5a745d4182e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.4785323} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ae54958640673e2bebb03287c96ce43f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ae54958640673e2bebb03287c96ce43f","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6270e89e-6cff-4892-b8d1-d7e0d97e0ad3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.4788682} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01"}}},"level":"info","message":"received a callback","requestID":"ae54958640673e2bebb03287c96ce43f"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"eb79baee9bd1b472beaa187d46f1dbe5","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"eb79baee9bd1b472beaa187d46f1dbe5","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"65899c20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01"}}},"level":"info","message":"received a callback","requestID":"eb79baee9bd1b472beaa187d46f1dbe5"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"65899c20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01 204 53ms","method":"DELETE","requestID":"65899c20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":53,"status":204,"url":"/peerconnections/7302c393-8471-4e2b-8c0b-e60e97b8af01"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8'"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696'"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88"},"level":"info","message":"Successfully finished experiment","requestID":"7d9aba0bb9db2db8fc7584699c80ecc4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"65986930-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":848,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38404fb9-d3cf-49f9-b2e9-df3b363a47a8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e2024d03-e547-47ee-869b-b7c27bd86d3f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.536153} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":848,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.695613,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"65986930-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"65986930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe90f6ef4-f359-4028-9477-d8b21f440a88': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe90f6ef4-f359-4028-9477-d8b21f440a88","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"4e7251b2-2586-4b85-b4bb-3be88c8caa23","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.5651803} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"65986930-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8/signaling 200 34ms","method":"POST","requestID":"65986930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8/signaling"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4ae25329-db0f-45f4-9954-e24b450742e2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.5654569} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"7d9aba0bb9db2db8fc7584699c80ecc4","responseTime":37,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"659e0e80-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":849,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcee98ee2-f8be-48ab-97fa-15ad570bf696","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"69c2a7f3-af44-4785-b559-76d16e2cd23a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.5717173} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":849,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.169058,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"659e0e80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"659e0e80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"659e0e80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/cee98ee2-f8be-48ab-97fa-15ad570bf696/signaling 200 7ms","method":"POST","requestID":"659e0e80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/e90f6ef4-f359-4028-9477-d8b21f440a88","requestID":"7d9aba0bb9db2db8fc7584699c80ecc4"} gateway-1 | {"time_local":"18/Jun/2025:09:55:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/e90f6ef4-f359-4028-9477-d8b21f440a88 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.249","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7d9aba0bb9db2db8fc7584699c80ecc4"} experiment-1 | {"level":"info","message":"DELETE /experiments/e90f6ef4-f359-4028-9477-d8b21f440a88 204 247ms","method":"DELETE","requestID":"7d9aba0bb9db2db8fc7584699c80ecc4","responseTime":247,"status":204,"url":"/experiments/e90f6ef4-f359-4028-9477-d8b21f440a88"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 190ms","method":"POST","requestID":"ae54958640673e2bebb03287c96ce43f","responseTime":190,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 191ms","method":"POST","requestID":"eb79baee9bd1b472beaa187d46f1dbe5","responseTime":191,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0Mn0.2pz5QAo6QkdD-aMk89sFxV2Z8qPLqUZ1k8jp8AGVxSM","level":"info","message":"auth send jwt","requestID":"3b7651fa486c9b4530eac9c2f2a92eb5"} device-1 | {"level":"info","message":"postDevices called","requestID":"3b7651fa486c9b4530eac9c2f2a92eb5"} gateway-1 | {"time_local":"18/Jun/2025:09:55:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.194","http_referrer":"","http_user_agent":"node-fetch","requestID":"ae54958640673e2bebb03287c96ce43f"} gateway-1 | {"time_local":"18/Jun/2025:09:55:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.195","http_referrer":"","http_user_agent":"node-fetch","requestID":"eb79baee9bd1b472beaa187d46f1dbe5"} gateway-1 | {"time_local":"18/Jun/2025:09:55:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1683","request_time":"0.992","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2c6f5aa159897b3fb7251788bc1d16b0"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3b7651fa486c9b4530eac9c2f2a92eb5","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":850,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":850,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.85884,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3b7651fa486c9b4530eac9c2f2a92eb5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240542,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0Mn0.2pz5QAo6QkdD-aMk89sFxV2Z8qPLqUZ1k8jp8AGVxSM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3b7651fa486c9b4530eac9c2f2a92eb5","responseTime":4,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:55:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1682","request_time":"1.017","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7bafbdc7f448ed514fb0ad6649c14927"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/cee98ee2-f8be-48ab-97fa-15ad570bf696' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/38404fb9-d3cf-49f9-b2e9-df3b363a47a8' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"52b2efc0-430a-4cd8-9d3d-d9576c447fd1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.7272434} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3b7651fa486c9b4530eac9c2f2a92eb5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9ab34b73-5fb0-4840-9bad-a70e46a7860c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.756035} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"3b7651fa486c9b4530eac9c2f2a92eb5","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"b95d1b64-994b-43b1-a66f-d0787e240934","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.7652316} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5aeb8325-f8ce-4f3e-b81b-9af6469e4fd6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.7654989} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"3b7651fa486c9b4530eac9c2f2a92eb5","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:42.765193403Z"}]},"request_id":"41249381-3d2f-4712-b919-d674e1bc8e94","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.7698529} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3b7651fa486c9b4530eac9c2f2a92eb5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"3b7651fa486c9b4530eac9c2f2a92eb5"} gateway-1 | {"time_local":"18/Jun/2025:09:55:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.103","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3b7651fa486c9b4530eac9c2f2a92eb5"} device-1 | {"level":"info","message":"POST /devices? 201 98ms","method":"POST","requestID":"3b7651fa486c9b4530eac9c2f2a92eb5","responseTime":98,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0Mn0.2pz5QAo6QkdD-aMk89sFxV2Z8qPLqUZ1k8jp8AGVxSM","level":"info","message":"auth send jwt","requestID":"8ac0ed74627c16680ea2da93056b0575"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8ac0ed74627c16680ea2da93056b0575","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"8ac0ed74627c16680ea2da93056b0575"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":851,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":851,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.715716,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8ac0ed74627c16680ea2da93056b0575","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240542,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0Mn0.2pz5QAo6QkdD-aMk89sFxV2Z8qPLqUZ1k8jp8AGVxSM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8ac0ed74627c16680ea2da93056b0575","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e460f883-8621-4fb6-88cb-98a262e958bc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.8148792} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"8ac0ed74627c16680ea2da93056b0575","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"693b90f7-8a86-452b-9c1a-25c166f8a527","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.8186467} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"8ac0ed74627c16680ea2da93056b0575","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"2b29dc3a-6aeb-4037-abec-2d7122146e82","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.851844} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e59c59c1-ec4e-45a8-ae6c-34409a423809","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.8520646} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"8ac0ed74627c16680ea2da93056b0575","responseTime":35,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:42.851809315Z"}]},"request_id":"68d77222-0c4c-4faf-8e69-671ba7a64032","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240542.8551447} authorization-1 | {"level":"info","message":"POST /relations/query 200 1ms","method":"POST","requestID":"8ac0ed74627c16680ea2da93056b0575","responseTime":1,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"8ac0ed74627c16680ea2da93056b0575"} gateway-1 | {"time_local":"18/Jun/2025:09:55:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.084","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8ac0ed74627c16680ea2da93056b0575"} device-1 | {"level":"info","message":"POST /devices? 201 80ms","method":"POST","requestID":"8ac0ed74627c16680ea2da93056b0575","responseTime":80,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"dafc3b88c431aa948f232a1f056798e6","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"dafc3b88c431aa948f232a1f056798e6","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/295e8068-7910-44f6-8b30-877c13a69b0e/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"dafc3b88c431aa948f232a1f056798e6"} device-1 | {"level":"info","message":"OPTIONS /devices/295e8068-7910-44f6-8b30-877c13a69b0e/websocket 200 1ms","method":"OPTIONS","requestID":"dafc3b88c431aa948f232a1f056798e6","responseTime":1,"status":200,"url":"/devices/295e8068-7910-44f6-8b30-877c13a69b0e/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2153f2a32c35551f822c6cd9a1d33b63","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2153f2a32c35551f822c6cd9a1d33b63","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2153f2a32c35551f822c6cd9a1d33b63"} device-1 | {"level":"info","message":"OPTIONS /devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7/websocket 200 1ms","method":"OPTIONS","requestID":"2153f2a32c35551f822c6cd9a1d33b63","responseTime":1,"status":200,"url":"/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU","level":"info","message":"auth send jwt","requestID":"fef554845c5ebc25fd423f7a4e03bdff"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"fef554845c5ebc25fd423f7a4e03bdff","responseTime":6,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU","level":"info","message":"auth send jwt","requestID":"d296651fd532d549b58f510e3a1b19bf"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"fef554845c5ebc25fd423f7a4e03bdff"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"d296651fd532d549b58f510e3a1b19bf","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"d296651fd532d549b58f510e3a1b19bf"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":852,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":852,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.311352,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":853,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"fef554845c5ebc25fd423f7a4e03bdff","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240545,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"fef554845c5ebc25fd423f7a4e03bdff","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":853,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.178381,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d296651fd532d549b58f510e3a1b19bf","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240545,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"d296651fd532d549b58f510e3a1b19bf","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"d296651fd532d549b58f510e3a1b19bf"} gateway-1 | {"time_local":"18/Jun/2025:09:55:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.022","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d296651fd532d549b58f510e3a1b19bf"} device-1 | {"level":"info","message":"POST /devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7/websocket 200 13ms","method":"POST","requestID":"d296651fd532d549b58f510e3a1b19bf","responseTime":13,"status":200,"url":"/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"fef554845c5ebc25fd423f7a4e03bdff"} gateway-1 | {"time_local":"18/Jun/2025:09:55:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/295e8068-7910-44f6-8b30-877c13a69b0e/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.030","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"fef554845c5ebc25fd423f7a4e03bdff"} device-1 | {"level":"info","message":"POST /devices/295e8068-7910-44f6-8b30-877c13a69b0e/websocket 200 23ms","method":"POST","requestID":"fef554845c5ebc25fd423f7a4e03bdff","responseTime":23,"status":200,"url":"/devices/295e8068-7910-44f6-8b30-877c13a69b0e/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"54cbdc4b0d111d24f60633320eec15d4","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"54cbdc4b0d111d24f60633320eec15d4","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"54cbdc4b0d111d24f60633320eec15d4"} device-1 | {"level":"info","message":"OPTIONS /devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7? 200 1ms","method":"OPTIONS","requestID":"54cbdc4b0d111d24f60633320eec15d4","responseTime":1,"status":200,"url":"/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU","level":"info","message":"auth send jwt","requestID":"81dc3b4ad157655897b92830bc264ba7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"81dc3b4ad157655897b92830bc264ba7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"81dc3b4ad157655897b92830bc264ba7"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8e0f641a955d7a3fb0bb2a88d1679192","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8e0f641a955d7a3fb0bb2a88d1679192","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/295e8068-7910-44f6-8b30-877c13a69b0e? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8e0f641a955d7a3fb0bb2a88d1679192"} device-1 | {"level":"info","message":"OPTIONS /devices/295e8068-7910-44f6-8b30-877c13a69b0e? 200 0ms","method":"OPTIONS","requestID":"8e0f641a955d7a3fb0bb2a88d1679192","responseTime":0,"status":200,"url":"/devices/295e8068-7910-44f6-8b30-877c13a69b0e?"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":854,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":854,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.699423,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"81dc3b4ad157655897b92830bc264ba7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240545,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"81dc3b4ad157655897b92830bc264ba7","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU","level":"info","message":"auth send jwt","requestID":"1fe88538a33b6a834c6938bbe589161e"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1fe88538a33b6a834c6938bbe589161e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"1fe88538a33b6a834c6938bbe589161e"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:42.851809315Z"}]},"request_id":"6a821e64-1609-4437-a502-2ec18553648a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.320837} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"81dc3b4ad157655897b92830bc264ba7","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":855,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":855,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.613237,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"1fe88538a33b6a834c6938bbe589161e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240545,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1fe88538a33b6a834c6938bbe589161e","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a4bfe4dc-deed-4f2a-a435-57a234649e37","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.325335} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"81dc3b4ad157655897b92830bc264ba7","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:42.765193403Z"}]},"request_id":"ad5a695b-7cad-4cdd-b9cc-b988a497b111","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.3280156} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"1fe88538a33b6a834c6938bbe589161e","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b013e167-15ea-4fed-ab7b-353e7d321d54","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.331868} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"1fe88538a33b6a834c6938bbe589161e","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:42.851809315Z"}]},"request_id":"4f3e9804-418a-4a80-99d4-be069a2fd25c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.339081} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"81dc3b4ad157655897b92830bc264ba7","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"81dc3b4ad157655897b92830bc264ba7"} gateway-1 | {"time_local":"18/Jun/2025:09:55:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.034","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"81dc3b4ad157655897b92830bc264ba7"} device-1 | {"level":"info","message":"PATCH /devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7? 200 31ms","method":"PATCH","requestID":"81dc3b4ad157655897b92830bc264ba7","responseTime":31,"status":200,"url":"/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:42.765193403Z"}]},"request_id":"0e5ac531-8817-4031-bf26-227a36bf76f5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.3486242} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"1fe88538a33b6a834c6938bbe589161e","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"1fe88538a33b6a834c6938bbe589161e"} gateway-1 | {"time_local":"18/Jun/2025:09:55:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/295e8068-7910-44f6-8b30-877c13a69b0e? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.036","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1fe88538a33b6a834c6938bbe589161e"} device-1 | {"level":"info","message":"PATCH /devices/295e8068-7910-44f6-8b30-877c13a69b0e? 200 31ms","method":"PATCH","requestID":"1fe88538a33b6a834c6938bbe589161e","responseTime":31,"status":200,"url":"/devices/295e8068-7910-44f6-8b30-877c13a69b0e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU","level":"info","message":"auth send jwt","requestID":"ddb88ddefc6af943c97fc340d137e0c4"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ddb88ddefc6af943c97fc340d137e0c4","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ddb88ddefc6af943c97fc340d137e0c4"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":856,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":856,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.745007,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ddb88ddefc6af943c97fc340d137e0c4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240545,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ddb88ddefc6af943c97fc340d137e0c4","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:42.765193403Z"}]},"request_id":"63e448d2-e17e-41d8-89d2-a817526f6913","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.364794} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"ddb88ddefc6af943c97fc340d137e0c4","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ddb88ddefc6af943c97fc340d137e0c4"} device-1 | {"level":"info","message":"GET /devices/295e8068-7910-44f6-8b30-877c13a69b0e? 200 10ms","method":"GET","requestID":"ddb88ddefc6af943c97fc340d137e0c4","responseTime":10,"status":200,"url":"/devices/295e8068-7910-44f6-8b30-877c13a69b0e?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/295e8068-7910-44f6-8b30-877c13a69b0e? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ddb88ddefc6af943c97fc340d137e0c4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU","level":"info","message":"auth send jwt","requestID":"17a0b482777753dacea58e10be033b7f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"17a0b482777753dacea58e10be033b7f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"17a0b482777753dacea58e10be033b7f"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":857,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":857,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.710188,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"17a0b482777753dacea58e10be033b7f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240545,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"17a0b482777753dacea58e10be033b7f","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:42.851809315Z"}]},"request_id":"a7167824-3001-4e2d-9865-2266732336e5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.3827019} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"17a0b482777753dacea58e10be033b7f","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"17a0b482777753dacea58e10be033b7f"} device-1 | {"level":"info","message":"GET /devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7? 200 9ms","method":"GET","requestID":"17a0b482777753dacea58e10be033b7f","responseTime":9,"status":200,"url":"/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"17a0b482777753dacea58e10be033b7f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU","level":"info","message":"auth send jwt","requestID":"f65fbd3cf8339dfc4978c563962d1f82"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f65fbd3cf8339dfc4978c563962d1f82","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"f65fbd3cf8339dfc4978c563962d1f82"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":858,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":858,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.592177,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f65fbd3cf8339dfc4978c563962d1f82","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240545,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f65fbd3cf8339dfc4978c563962d1f82","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2"},"level":"info","message":"Attempting to run experiment","requestID":"f65fbd3cf8339dfc4978c563962d1f82"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2"},"level":"info","message":"Attempting to book experiment","requestID":"f65fbd3cf8339dfc4978c563962d1f82"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2"},"level":"info","message":"Successfully booked experiment","requestID":"f65fbd3cf8339dfc4978c563962d1f82"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"67513cc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"67547110-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":859,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":859,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.066923,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":860,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"67513cc0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240545,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"67513cc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":860,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.16531,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"67547110-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240545,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"67547110-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:42.765193403Z"}]},"request_id":"741934a6-52b8-4010-b8db-30149e227a5b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.4490101} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"67513cc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:42.851809315Z"}]},"request_id":"9604be93-6061-450a-b1d4-7f53349a5652","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.4495358} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"67547110-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"67513cc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/295e8068-7910-44f6-8b30-877c13a69b0e? 200 33ms","method":"GET","requestID":"67513cc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/295e8068-7910-44f6-8b30-877c13a69b0e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"67547110-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7? 200 12ms","method":"GET","requestID":"67547110-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2"},"level":"info","message":"Setting up experiment","requestID":"f65fbd3cf8339dfc4978c563962d1f82"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"f65fbd3cf8339dfc4978c563962d1f82"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"f65fbd3cf8339dfc4978c563962d1f82"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2"},"level":"info","message":"Successfully locked booking for experiment","requestID":"f65fbd3cf8339dfc4978c563962d1f82"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2"},"level":"info","message":"Successfully set up experiment","requestID":"f65fbd3cf8339dfc4978c563962d1f82"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"675dbfe0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"675de6f0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2"},"level":"info","message":"Successfully running experiment","requestID":"f65fbd3cf8339dfc4978c563962d1f82"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":861,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":861,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.679202,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":862,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"675dbfe0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240545,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"675dbfe0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":862,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.732321,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"675de6f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240545,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"675de6f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:42.765193403Z"}]},"request_id":"e6eb3be8-3137-4966-bedc-f0bac858e4f0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.5106497} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"675dbfe0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:42.851809315Z"}]},"request_id":"da82534e-3b36-4f90-ab3e-4e4fa50bd173","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.511258} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"675de6f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"675dbfe0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/295e8068-7910-44f6-8b30-877c13a69b0e? 200 39ms","method":"GET","requestID":"675dbfe0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":200,"url":"/devices/295e8068-7910-44f6-8b30-877c13a69b0e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"675de6f0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffac215ec-cb47-45e4-82d9-eeed942771b2#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffac215ec-cb47-45e4-82d9-eeed942771b2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"f7b11a35-6d7a-49fe-bef0-653be1c97a8f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.5434399} device-1 | {"level":"info","message":"GET /devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7? 200 41ms","method":"GET","requestID":"675de6f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":41,"status":200,"url":"/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"842c5ada-660c-4aaf-b1d7-cbc53c2b81f8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.544555} authorization-1 | {"level":"info","message":"POST /relations/update 200 39ms","method":"POST","requestID":"f65fbd3cf8339dfc4978c563962d1f82","responseTime":39,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"67649db0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":863,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"f65fbd3cf8339dfc4978c563962d1f82"} gateway-1 | {"time_local":"18/Jun/2025:09:55:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1288","request_time":"0.166","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f65fbd3cf8339dfc4978c563962d1f82"} experiment-1 | {"level":"info","message":"POST /experiments? 201 163ms","method":"POST","requestID":"f65fbd3cf8339dfc4978c563962d1f82","responseTime":163,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"055cd75d-c702-4b30-b60b-992b5f87aa45","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.5528994} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":863,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.135974,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"67649db0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"67649db0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU","level":"info","message":"auth send jwt","requestID":"d229274aafbbf0ec9fdd451987454088"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d229274aafbbf0ec9fdd451987454088","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d229274aafbbf0ec9fdd451987454088"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"67649db0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/295e8068-7910-44f6-8b30-877c13a69b0e/signaling 200 12ms","method":"POST","requestID":"67649db0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/295e8068-7910-44f6-8b30-877c13a69b0e/signaling"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":864,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":864,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.933819,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6766e7a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d229274aafbbf0ec9fdd451987454088","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240545,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"d229274aafbbf0ec9fdd451987454088","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":865,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:42.765193403Z"}]},"request_id":"ed056b70-cacc-4975-9021-fc112b4e8720","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.59033} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"33bcf39c-b669-465a-b817-5117631ef704","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.5904613} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d229274aafbbf0ec9fdd451987454088","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":865,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.422699,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6766e7a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"6766e7a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d229274aafbbf0ec9fdd451987454088"} gateway-1 | {"time_local":"18/Jun/2025:09:55:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/295e8068-7910-44f6-8b30-877c13a69b0e? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d229274aafbbf0ec9fdd451987454088"} device-1 | {"level":"info","message":"GET /devices/295e8068-7910-44f6-8b30-877c13a69b0e? 200 38ms","method":"GET","requestID":"d229274aafbbf0ec9fdd451987454088","responseTime":38,"status":200,"url":"/devices/295e8068-7910-44f6-8b30-877c13a69b0e?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6766e7a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7/signaling 200 34ms","method":"POST","requestID":"6766e7a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"f65fbd3cf8339dfc4978c563962d1f82"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"676c65e0-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU","level":"info","message":"auth send jwt","requestID":"91e9055047fb1aa0371d516c031c7dba"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"91e9055047fb1aa0371d516c031c7dba","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"676cb400-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"91e9055047fb1aa0371d516c031c7dba"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":866,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":866,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.718882,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":867,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"676c65e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240545,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"676c65e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":867,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.577225,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":868,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"676cb400-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240545,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"676cb400-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":868,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.805875,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"91e9055047fb1aa0371d516c031c7dba","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240545,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"91e9055047fb1aa0371d516c031c7dba","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:42.851809315Z"}]},"request_id":"3b842b5e-f663-4f17-a774-af1a6a95abc1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.608089} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:42.765193403Z"}]},"request_id":"75c38d48-fc31-4c06-8094-54d2b78c16e6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.6086335} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"676cb400-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:42.851809315Z"}]},"request_id":"0bbfadf7-3b14-46f9-bc87-1bac8dfc8844","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.6335502} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"676c65e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"91e9055047fb1aa0371d516c031c7dba","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"676cb400-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7? 200 38ms","method":"GET","requestID":"676cb400-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":38,"status":200,"url":"/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"91e9055047fb1aa0371d516c031c7dba"} device-1 | {"level":"info","message":"GET /devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7? 200 38ms","method":"GET","requestID":"91e9055047fb1aa0371d516c031c7dba","responseTime":38,"status":200,"url":"/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"91e9055047fb1aa0371d516c031c7dba"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"676c65e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/295e8068-7910-44f6-8b30-877c13a69b0e? 200 42ms","method":"GET","requestID":"676c65e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":42,"status":200,"url":"/devices/295e8068-7910-44f6-8b30-877c13a69b0e?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2"},"level":"info","message":"Building connection plan","requestID":"f65fbd3cf8339dfc4978c563962d1f82"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"9130db18-4f42-43af-91b8-a545d9c5ccd4"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"62faeeab-b48e-4e3c-ab8c-c9a6422b4cc3"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"9b52dabd-889c-40c4-aaff-7513d22296b8"}]},"level":"info","message":"Built pairwise service configurations","requestID":"f65fbd3cf8339dfc4978c563962d1f82"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"67731ca0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"67731ca0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"POST /rooms 201 1ms","method":"POST","requestID":"67731ca0-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":1,"status":201,"url":"/rooms"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8?id=b0fcd2fa-01f4-4f6e-b862-b9d73d5969c4","ws://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8?id=6b898132-c01e-4585-88a0-449b01ba7dc0"]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"f65fbd3cf8339dfc4978c563962d1f82"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"677391d0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":869,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":869,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.221443,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"677391d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240545,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"677391d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"eef48fdc-8a8d-4ad7-b8cd-6271a13ccb93","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.6553006} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ee08f06c-45a1-44e2-9674-7e5c7828edaf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.6554923} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"677391d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"677391d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"677391d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1'","requestID":"677391d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1'","requestID":"677391d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"677391d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 47ms","method":"POST","requestID":"677391d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":47,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"677391d0-4c2a-11f0-a085-a5c7b3a0c4e5"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"677c1d50-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6b898132-c01e-4585-88a0-449b01ba7dc0\" in room \"http://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8\"","requestID":"677c1d50-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"677c1d50-4c2a-11f0-b702-8b8a85c3ad9a"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"711f5690-026a-4e0d-b986-8900de7ef6a1","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"677c6b70-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"b0fcd2fa-01f4-4f6e-b862-b9d73d5969c4\" in room \"http://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8\"","requestID":"677c6b70-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"677c6b70-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"b0fcd2fa-01f4-4f6e-b862-b9d73d5969c4\" in room \"http://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"b0fcd2fa-01f4-4f6e-b862-b9d73d5969c4\" in room \"http://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"b0fcd2fa-01f4-4f6e-b862-b9d73d5969c4\" in room \"http://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"b0fcd2fa-01f4-4f6e-b862-b9d73d5969c4\" in room \"http://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8\""} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b162dba564e7e66ab6ef01c55426a6c1","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b162dba564e7e66ab6ef01c55426a6c1","responseTime":1,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"b0fcd2fa-01f4-4f6e-b862-b9d73d5969c4\" in room \"http://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"b0fcd2fa-01f4-4f6e-b862-b9d73d5969c4\" in room \"http://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"b0fcd2fa-01f4-4f6e-b862-b9d73d5969c4\" in room \"http://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"b0fcd2fa-01f4-4f6e-b862-b9d73d5969c4\" in room \"http://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8\""} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1"}}},"level":"info","message":"received a callback","requestID":"b162dba564e7e66ab6ef01c55426a6c1"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"b162dba564e7e66ab6ef01c55426a6c1","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"b162dba564e7e66ab6ef01c55426a6c1"} device-1 | {"data":{"peerconnection":"711f5690-026a-4e0d-b986-8900de7ef6a1","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"f65fbd3cf8339dfc4978c563962d1f82"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6787b610-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"data":{"peerconnection":"711f5690-026a-4e0d-b986-8900de7ef6a1","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":870,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1f536139-ce92-4ccd-8cb8-313ac82a228c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.7811942} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":870,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.434631,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6787b610-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6787b610-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"711f5690-026a-4e0d-b986-8900de7ef6a1","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6787b610-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/295e8068-7910-44f6-8b30-877c13a69b0e/signaling 200 12ms","method":"POST","requestID":"6787b610-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/295e8068-7910-44f6-8b30-877c13a69b0e/signaling"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c878b6baf3c471f6908742aa51d491c1","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c878b6baf3c471f6908742aa51d491c1","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"678a0000-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1"}}},"level":"info","message":"received a callback","requestID":"c878b6baf3c471f6908742aa51d491c1"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":871,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"10f0cbf0-569a-47bb-b47f-bf5353c2a95b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.796375} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":871,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.355154,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"678a0000-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"678a0000-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"678b1170-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"678a0000-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7/signaling 200 33ms","method":"POST","requestID":"678a0000-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7/signaling"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":872,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F711f5690-026a-4e0d-b986-8900de7ef6a1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"99293117-54e8-4368-be46-5332789a0315","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.8279746} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":872,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.626861,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"678b1170-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"678b1170-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"678b1170-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1 200 33ms","method":"GET","requestID":"678b1170-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU","level":"info","message":"auth send jwt","requestID":"0b68c62d3e16aadaa59e786dff307711"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0b68c62d3e16aadaa59e786dff307711","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/fac215ec-cb47-45e4-82d9-eeed942771b2","requestID":"0b68c62d3e16aadaa59e786dff307711"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":873,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":873,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.683046,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0b68c62d3e16aadaa59e786dff307711","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240545,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"0b68c62d3e16aadaa59e786dff307711","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 56ms","method":"POST","requestID":"c878b6baf3c471f6908742aa51d491c1","responseTime":56,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.061","http_referrer":"","http_user_agent":"node-fetch","requestID":"c878b6baf3c471f6908742aa51d491c1"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"679300b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":874,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/fac215ec-cb47-45e4-82d9-eeed942771b2","requestID":"0b68c62d3e16aadaa59e786dff307711"} experiment-1 | {"level":"info","message":"GET /experiments/fac215ec-cb47-45e4-82d9-eeed942771b2 200 33ms","method":"GET","requestID":"0b68c62d3e16aadaa59e786dff307711","responseTime":33,"status":200,"url":"/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2"} gateway-1 | {"time_local":"18/Jun/2025:09:55:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/fac215ec-cb47-45e4-82d9-eeed942771b2 HTTP/1.1","status": "200","body_bytes_sent":"1361","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0b68c62d3e16aadaa59e786dff307711"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"67454628-1f88-47fc-a307-186b4e5b69c5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.8759966} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":874,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.467919,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU","level":"info","message":"auth send jwt","requestID":"505680bcc23dd17b62ad3543e3cb0b98"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"679300b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"505680bcc23dd17b62ad3543e3cb0b98","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"679300b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":26,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/fac215ec-cb47-45e4-82d9-eeed942771b2","requestID":"505680bcc23dd17b62ad3543e3cb0b98"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"679300b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7/signaling 200 30ms","method":"POST","requestID":"679300b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7/signaling"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":875,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":875,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.922479,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6797e2b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"505680bcc23dd17b62ad3543e3cb0b98","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240545,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"505680bcc23dd17b62ad3543e3cb0b98","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":876,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"53c0e322-c6e5-48e8-acd9-f29b2f5ca348","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.8879323} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":876,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.11956,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2"},"level":"info","message":"Attempting to finish experiment","requestID":"505680bcc23dd17b62ad3543e3cb0b98"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6797e2b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6797e2b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"6798cd10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":877,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6797e2b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":877,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.707652,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} device-1 | {"level":"info","message":"POST /devices/295e8068-7910-44f6-8b30-877c13a69b0e/signaling 200 10ms","method":"POST","requestID":"6797e2b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/295e8068-7910-44f6-8b30-877c13a69b0e/signaling"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6798cd10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240545,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0NX0.UejAT-r9tkJgX9804Fawe1wCrMiu3RpUnrH-_aJ_smU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6798cd10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1","device":"295e8068-7910-44f6-8b30-877c13a69b0e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} gateway-1 | {"time_local":"18/Jun/2025:09:55:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/a9d33823-625e-4b67-af7b-5f87118096b8?id=6b898132-c01e-4585-88a0-449b01ba7dc0 HTTP/1.1","status": "101","body_bytes_sent":"2","request_time":"0.225","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"333f2008c1168ac04491d62df9a086ec"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1","device":"c2e5a66a-9bb7-449c-a744-8f171ac715f7","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} gateway-1 | {"time_local":"18/Jun/2025:09:55:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/a9d33823-625e-4b67-af7b-5f87118096b8?id=b0fcd2fa-01f4-4f6e-b862-b9d73d5969c4 HTTP/1.1","status": "101","body_bytes_sent":"874","request_time":"0.226","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4f385348e14570ed54bc8c77eb369dee"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"6b898132-c01e-4585-88a0-449b01ba7dc0\" in room \"http://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"6b898132-c01e-4585-88a0-449b01ba7dc0\" from room \"http://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8\", code: 1005, reason: "} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"711f5690-026a-4e0d-b986-8900de7ef6a1","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"b0fcd2fa-01f4-4f6e-b862-b9d73d5969c4\" in room \"http://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"b0fcd2fa-01f4-4f6e-b862-b9d73d5969c4\" from room \"http://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8\", code: 1005, reason: "} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b9e08825-adb7-4f38-b6ff-d1f5e296a9ed","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.9300256} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F711f5690-026a-4e0d-b986-8900de7ef6a1': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F711f5690-026a-4e0d-b986-8900de7ef6a1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"af34bf2f-555d-4315-bcd1-a940b1c70fe5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.9302888} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ccf682bd906c44189e4f7c64c7102ad0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ccf682bd906c44189e4f7c64c7102ad0","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1"}}},"level":"info","message":"received a callback","requestID":"ccf682bd906c44189e4f7c64c7102ad0"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"6798cd10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"89aac61b1c5f8b48a335139080e9d8de","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"89aac61b1c5f8b48a335139080e9d8de","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1"}}},"level":"info","message":"received a callback","requestID":"89aac61b1c5f8b48a335139080e9d8de"} device-1 | {"data":{"peerconnection":"711f5690-026a-4e0d-b986-8900de7ef6a1","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"6798cd10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1 204 56ms","method":"DELETE","requestID":"6798cd10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":56,"status":204,"url":"/peerconnections/711f5690-026a-4e0d-b986-8900de7ef6a1"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e'"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2"},"level":"info","message":"Successfully finished experiment","requestID":"505680bcc23dd17b62ad3543e3cb0b98"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"67a6fde0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":878,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2e5a66a-9bb7-449c-a744-8f171ac715f7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d0b9883b-487b-415f-9016-a7f5d4589df2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.9860551} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":878,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.28943,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"67a6fde0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"67a6fde0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"67a6fde0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7/signaling 200 8ms","method":"POST","requestID":"67a6fde0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"67a88480-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":879,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:45Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffac215ec-cb47-45e4-82d9-eeed942771b2': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffac215ec-cb47-45e4-82d9-eeed942771b2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"4f87f4b1-fbcd-4556-948f-2851de99213f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.9964716} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F295e8068-7910-44f6-8b30-877c13a69b0e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"690ed580-3773-4204-bd04-320fd4695a9a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240545.996724} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"91d51b5d-0b3f-4308-b696-c8a094a51156","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240546.0209446} authorization-1 | {"level":"info","message":"POST /relations/update 200 41ms","method":"POST","requestID":"505680bcc23dd17b62ad3543e3cb0b98","responseTime":41,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":879,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.253534,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"67a88480-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"67a88480-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"67a88480-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/295e8068-7910-44f6-8b30-877c13a69b0e/signaling 200 34ms","method":"POST","requestID":"67a88480-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/295e8068-7910-44f6-8b30-877c13a69b0e/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/fac215ec-cb47-45e4-82d9-eeed942771b2","requestID":"505680bcc23dd17b62ad3543e3cb0b98"} gateway-1 | {"time_local":"18/Jun/2025:09:55:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/fac215ec-cb47-45e4-82d9-eeed942771b2 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.241","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"505680bcc23dd17b62ad3543e3cb0b98"} experiment-1 | {"level":"info","message":"DELETE /experiments/fac215ec-cb47-45e4-82d9-eeed942771b2 204 237ms","method":"DELETE","requestID":"505680bcc23dd17b62ad3543e3cb0b98","responseTime":237,"status":204,"url":"/experiments/fac215ec-cb47-45e4-82d9-eeed942771b2"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 186ms","method":"POST","requestID":"ccf682bd906c44189e4f7c64c7102ad0","responseTime":186,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.189","http_referrer":"","http_user_agent":"node-fetch","requestID":"ccf682bd906c44189e4f7c64c7102ad0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 186ms","method":"POST","requestID":"89aac61b1c5f8b48a335139080e9d8de","responseTime":186,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.190","http_referrer":"","http_user_agent":"node-fetch","requestID":"89aac61b1c5f8b48a335139080e9d8de"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0Nn0.9q4AIo1L56BjgUy8bywXSWMZ_nRMfXTmonXe7xkoOyg","level":"info","message":"auth send jwt","requestID":"c0dfa2eb932d98982b7317e5997882bf"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c0dfa2eb932d98982b7317e5997882bf","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"c0dfa2eb932d98982b7317e5997882bf"} gateway-1 | {"time_local":"18/Jun/2025:09:55:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1682","request_time":"0.842","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"57719aca40ab60a3a23ab2f2df8a2f02"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":880,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:46Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":880,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.298907,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:46Z"} gateway-1 | {"time_local":"18/Jun/2025:09:55:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1683","request_time":"0.837","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"5fae7e3a921e9e827e12c877d82979ab"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c0dfa2eb932d98982b7317e5997882bf","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240546,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0Nn0.9q4AIo1L56BjgUy8bywXSWMZ_nRMfXTmonXe7xkoOyg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"c0dfa2eb932d98982b7317e5997882bf","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/295e8068-7910-44f6-8b30-877c13a69b0e' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/c2e5a66a-9bb7-449c-a744-8f171ac715f7' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"b1db2ae6-4eab-436d-8ea9-f71eee27b67d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240546.1431065} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c0dfa2eb932d98982b7317e5997882bf","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"21e5dc77-6fed-42e1-9f9b-1955b3efa0f1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240546.1467001} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"c0dfa2eb932d98982b7317e5997882bf","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"5979f065-098d-4332-8f5a-1c2ccb685a78","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240546.1557078} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"32b2c341-2d7d-488c-ae63-b655ec33939d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240546.1558096} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"c0dfa2eb932d98982b7317e5997882bf","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:46.155678493Z"}]},"request_id":"ef47ff6c-c17d-459c-9818-804ea48041e2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240546.159108} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c0dfa2eb932d98982b7317e5997882bf","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"c0dfa2eb932d98982b7317e5997882bf"} gateway-1 | {"time_local":"18/Jun/2025:09:55:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c0dfa2eb932d98982b7317e5997882bf"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"c0dfa2eb932d98982b7317e5997882bf","responseTime":38,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0Nn0.9q4AIo1L56BjgUy8bywXSWMZ_nRMfXTmonXe7xkoOyg","level":"info","message":"auth send jwt","requestID":"584d681117a285477d5397acb0dfb3dd"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"584d681117a285477d5397acb0dfb3dd","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"584d681117a285477d5397acb0dfb3dd"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":881,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:46Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":881,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.673347,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:46Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"584d681117a285477d5397acb0dfb3dd","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240546,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0Nn0.9q4AIo1L56BjgUy8bywXSWMZ_nRMfXTmonXe7xkoOyg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"584d681117a285477d5397acb0dfb3dd","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"bb306fe6-4f23-4a97-80a9-3f4025d36ed3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240546.179865} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"584d681117a285477d5397acb0dfb3dd","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9270f9bb-8c37-421c-aaeb-97bca72798d9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240546.183724} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"584d681117a285477d5397acb0dfb3dd","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"37413707-e09d-487c-98f1-09f7544a25a6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240546.1964717} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1ce18cad-da7e-4a53-8e2f-8bb0f7a56ba7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240546.1966317} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"584d681117a285477d5397acb0dfb3dd","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:46.196441055Z"}]},"request_id":"c630801f-98ef-4681-a724-281f602efa7d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240546.1999931} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"584d681117a285477d5397acb0dfb3dd","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"584d681117a285477d5397acb0dfb3dd"} device-1 | {"level":"info","message":"POST /devices? 201 36ms","method":"POST","requestID":"584d681117a285477d5397acb0dfb3dd","responseTime":36,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"584d681117a285477d5397acb0dfb3dd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0N30.MHQwe50IZZvPJe55dVeIAjmKgd72aAlAGAQv0tlS1OU","level":"info","message":"auth send jwt","requestID":"68952feec73f25f90541de7595a2d873"} authentication-1 | {"level":"info","message":"GET /auth 200 22ms","method":"GET","requestID":"68952feec73f25f90541de7595a2d873","responseTime":22,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"68952feec73f25f90541de7595a2d873"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":882,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:47Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":882,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.675263,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:47Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"68952feec73f25f90541de7595a2d873","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240547,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0N30.MHQwe50IZZvPJe55dVeIAjmKgd72aAlAGAQv0tlS1OU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"68952feec73f25f90541de7595a2d873","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:46.196441055Z"}]},"request_id":"8de65e21-0960-47cb-8f7d-e5eb9eb3f3fe","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240547.0832717} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"68952feec73f25f90541de7595a2d873","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5e787f30-dcc2-430f-b04d-f0b9e79163af","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240547.087851} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"68952feec73f25f90541de7595a2d873","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:46.196441055Z"}]},"request_id":"c036c126-5d17-47f7-a6ad-7db5a8e61463","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240547.0973713} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"68952feec73f25f90541de7595a2d873","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"68952feec73f25f90541de7595a2d873"} gateway-1 | {"time_local":"18/Jun/2025:09:55:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1 HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.048","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"68952feec73f25f90541de7595a2d873"} device-1 | {"level":"info","message":"PATCH /devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1 200 24ms","method":"PATCH","requestID":"68952feec73f25f90541de7595a2d873","responseTime":24,"status":200,"url":"/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0N30.MHQwe50IZZvPJe55dVeIAjmKgd72aAlAGAQv0tlS1OU","level":"info","message":"auth send jwt","requestID":"ed696c5c797d6ea77fa455e237867227"} authentication-1 | {"level":"info","message":"GET /auth 200 23ms","method":"GET","requestID":"ed696c5c797d6ea77fa455e237867227","responseTime":23,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"ed696c5c797d6ea77fa455e237867227"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":883,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:47Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":883,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.696643,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:47Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ed696c5c797d6ea77fa455e237867227","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240547,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0N30.MHQwe50IZZvPJe55dVeIAjmKgd72aAlAGAQv0tlS1OU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ed696c5c797d6ea77fa455e237867227","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"ed696c5c797d6ea77fa455e237867227"} gateway-1 | {"time_local":"18/Jun/2025:09:55:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.037","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"ed696c5c797d6ea77fa455e237867227"} device-1 | {"level":"info","message":"POST /devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1/websocket 200 14ms","method":"POST","requestID":"ed696c5c797d6ea77fa455e237867227","responseTime":14,"status":200,"url":"/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1' connected"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"79ebc7d7-27e1-4312-ad46-fbcdfbbbc02d\" in room \"http://localhost/rooms/f35921b9-32db-4115-b124-9de13495582c\"","requestID":"656d1370-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"389cd16f-fe16-46a2-a48c-9f749f2c0044\" in room \"http://localhost/rooms/f35921b9-32db-4115-b124-9de13495582c\"","requestID":"656d3a80-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"1a37a49a5d6307fbc5ca641b4b8b80a0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1a37a49a5d6307fbc5ca641b4b8b80a0","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f09731f5-f8ef-4f35-8505-cac0b397a970/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1a37a49a5d6307fbc5ca641b4b8b80a0"} device-1 | {"level":"info","message":"OPTIONS /devices/f09731f5-f8ef-4f35-8505-cac0b397a970/websocket 200 1ms","method":"OPTIONS","requestID":"1a37a49a5d6307fbc5ca641b4b8b80a0","responseTime":1,"status":200,"url":"/devices/f09731f5-f8ef-4f35-8505-cac0b397a970/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U","level":"info","message":"auth send jwt","requestID":"9cafb36f3f0f9ccfe4d9f3a3fd9e1d20"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9cafb36f3f0f9ccfe4d9f3a3fd9e1d20","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"9cafb36f3f0f9ccfe4d9f3a3fd9e1d20"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":884,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":884,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.200653,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9cafb36f3f0f9ccfe4d9f3a3fd9e1d20","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240548,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"9cafb36f3f0f9ccfe4d9f3a3fd9e1d20","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"9cafb36f3f0f9ccfe4d9f3a3fd9e1d20"} gateway-1 | {"time_local":"18/Jun/2025:09:55:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f09731f5-f8ef-4f35-8505-cac0b397a970/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.029","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9cafb36f3f0f9ccfe4d9f3a3fd9e1d20"} device-1 | {"level":"info","message":"POST /devices/f09731f5-f8ef-4f35-8505-cac0b397a970/websocket 200 24ms","method":"POST","requestID":"9cafb36f3f0f9ccfe4d9f3a3fd9e1d20","responseTime":24,"status":200,"url":"/devices/f09731f5-f8ef-4f35-8505-cac0b397a970/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"790345df9a8ce6d56ad998770d269e95","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"790345df9a8ce6d56ad998770d269e95","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f09731f5-f8ef-4f35-8505-cac0b397a970? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"790345df9a8ce6d56ad998770d269e95"} device-1 | {"level":"info","message":"OPTIONS /devices/f09731f5-f8ef-4f35-8505-cac0b397a970? 200 1ms","method":"OPTIONS","requestID":"790345df9a8ce6d56ad998770d269e95","responseTime":1,"status":200,"url":"/devices/f09731f5-f8ef-4f35-8505-cac0b397a970?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U","level":"info","message":"auth send jwt","requestID":"b560da012f43a658846c95a3b5602f9d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b560da012f43a658846c95a3b5602f9d","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"b560da012f43a658846c95a3b5602f9d"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":885,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":885,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.123793,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b560da012f43a658846c95a3b5602f9d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240548,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"b560da012f43a658846c95a3b5602f9d","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:46.155678493Z"}]},"request_id":"12c963c6-56ab-4a6a-9095-b52753c6fdef","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.5832832} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"b560da012f43a658846c95a3b5602f9d","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a91b1b12-333c-4f66-9b0a-3c25afad6b97","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.5880358} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"b560da012f43a658846c95a3b5602f9d","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:46.155678493Z"}]},"request_id":"5d8eb579-4228-478e-a32b-538068ac6afc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.5974803} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"b560da012f43a658846c95a3b5602f9d","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"b560da012f43a658846c95a3b5602f9d"} device-1 | {"level":"info","message":"PATCH /devices/f09731f5-f8ef-4f35-8505-cac0b397a970? 200 29ms","method":"PATCH","requestID":"b560da012f43a658846c95a3b5602f9d","responseTime":29,"status":200,"url":"/devices/f09731f5-f8ef-4f35-8505-cac0b397a970?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/f09731f5-f8ef-4f35-8505-cac0b397a970? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.033","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b560da012f43a658846c95a3b5602f9d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U","level":"info","message":"auth send jwt","requestID":"8903f95695fb0ec2d885bce00eb869d3"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8903f95695fb0ec2d885bce00eb869d3","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8903f95695fb0ec2d885bce00eb869d3"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":886,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":886,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.68328,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8903f95695fb0ec2d885bce00eb869d3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240548,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8903f95695fb0ec2d885bce00eb869d3","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:46.155678493Z"}]},"request_id":"0397d5e3-1965-4cbd-97fc-a183e2c9f9de","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.6157877} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8903f95695fb0ec2d885bce00eb869d3","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8903f95695fb0ec2d885bce00eb869d3"} gateway-1 | {"time_local":"18/Jun/2025:09:55:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f09731f5-f8ef-4f35-8505-cac0b397a970? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8903f95695fb0ec2d885bce00eb869d3"} device-1 | {"level":"info","message":"GET /devices/f09731f5-f8ef-4f35-8505-cac0b397a970? 200 11ms","method":"GET","requestID":"8903f95695fb0ec2d885bce00eb869d3","responseTime":11,"status":200,"url":"/devices/f09731f5-f8ef-4f35-8505-cac0b397a970?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U","level":"info","message":"auth send jwt","requestID":"3ce2033b5dfe6e68d2825b1b1569197f"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3ce2033b5dfe6e68d2825b1b1569197f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3ce2033b5dfe6e68d2825b1b1569197f"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":887,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":887,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.722239,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3ce2033b5dfe6e68d2825b1b1569197f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240548,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3ce2033b5dfe6e68d2825b1b1569197f","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:46.196441055Z"}]},"request_id":"9e0de3f4-3295-495e-ba90-0498d1a4f510","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.6310909} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3ce2033b5dfe6e68d2825b1b1569197f","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3ce2033b5dfe6e68d2825b1b1569197f"} gateway-1 | {"time_local":"18/Jun/2025:09:55:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3ce2033b5dfe6e68d2825b1b1569197f"} device-1 | {"level":"info","message":"GET /devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1? 200 11ms","method":"GET","requestID":"3ce2033b5dfe6e68d2825b1b1569197f","responseTime":11,"status":200,"url":"/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U","level":"info","message":"auth send jwt","requestID":"5988430a9b9491d14bb377483ffb3249"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5988430a9b9491d14bb377483ffb3249","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"5988430a9b9491d14bb377483ffb3249"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":888,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":888,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.570498,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5988430a9b9491d14bb377483ffb3249","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240548,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5988430a9b9491d14bb377483ffb3249","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b"},"level":"info","message":"Attempting to run experiment","requestID":"5988430a9b9491d14bb377483ffb3249"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b"},"level":"info","message":"Attempting to book experiment","requestID":"5988430a9b9491d14bb377483ffb3249"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b"},"level":"info","message":"Successfully booked experiment","requestID":"5988430a9b9491d14bb377483ffb3249"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"69467d10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6946a420-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":889,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":889,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.701064,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":890,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"69467d10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240548,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"69467d10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":890,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.661132,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6946a420-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240548,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6946a420-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:46.155678493Z"}]},"request_id":"465ac854-45da-4362-bf55-c39e49e1b5d4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.713472} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"69467d10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:46.196441055Z"}]},"request_id":"3cf02a96-a0c1-48d9-b07a-61ccb9116c99","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.714135} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6946a420-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"69467d10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/f09731f5-f8ef-4f35-8505-cac0b397a970? 200 13ms","method":"GET","requestID":"69467d10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/f09731f5-f8ef-4f35-8505-cac0b397a970?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6946a420-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1? 200 12ms","method":"GET","requestID":"6946a420-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b"},"level":"info","message":"Setting up experiment","requestID":"5988430a9b9491d14bb377483ffb3249"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"5988430a9b9491d14bb377483ffb3249"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"5988430a9b9491d14bb377483ffb3249"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b"},"level":"info","message":"Successfully locked booking for experiment","requestID":"5988430a9b9491d14bb377483ffb3249"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b"},"level":"info","message":"Successfully set up experiment","requestID":"5988430a9b9491d14bb377483ffb3249"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"69506820-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"69508f30-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b"},"level":"info","message":"Successfully running experiment","requestID":"5988430a9b9491d14bb377483ffb3249"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":891,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":891,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.600045,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":892,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"69506820-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240548,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"69506820-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":892,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.480262,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"69508f30-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240548,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"69508f30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:46.155678493Z"}]},"request_id":"4fcfc88b-a708-4b99-af21-1a34e4b5a12e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.8033304} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"69506820-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:46.196441055Z"}]},"request_id":"401faa68-2453-4b0c-8ba5-773cec0162e4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.8040392} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"69508f30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"69506820-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/f09731f5-f8ef-4f35-8505-cac0b397a970? 200 38ms","method":"GET","requestID":"69506820-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":38,"status":200,"url":"/devices/f09731f5-f8ef-4f35-8505-cac0b397a970?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"69508f30-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1? 200 38ms","method":"GET","requestID":"69508f30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":38,"status":200,"url":"/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6956a9b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8c25911a-7ebf-4735-b39e-ad95d1633a7b#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8c25911a-7ebf-4735-b39e-ad95d1633a7b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"be0f93f3-b023-4f1c-a3c0-681d6819482b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.813194} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"becc58b1-e950-448a-9c93-bd58b0a8e3d1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.8134687} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":893,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 41ms","method":"POST","requestID":"5988430a9b9491d14bb377483ffb3249","responseTime":41,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"54087bb5-2213-42da-a519-e42f7cb5cbf4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.8153846} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":893,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.145164,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6956a9b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6956a9b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6956a9b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/f09731f5-f8ef-4f35-8505-cac0b397a970/signaling 200 8ms","method":"POST","requestID":"6956a9b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/f09731f5-f8ef-4f35-8505-cac0b397a970/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"5988430a9b9491d14bb377483ffb3249"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"69585760-4c2a-11f0-a085-a5c7b3a0c4e5"} gateway-1 | {"time_local":"18/Jun/2025:09:55:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1292","request_time":"0.187","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5988430a9b9491d14bb377483ffb3249"} experiment-1 | {"level":"info","message":"POST /experiments? 201 169ms","method":"POST","requestID":"5988430a9b9491d14bb377483ffb3249","responseTime":169,"status":201,"url":"/experiments?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U","level":"info","message":"auth send jwt","requestID":"85ad7fbd310a73176df8a25206331289"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"85ad7fbd310a73176df8a25206331289","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"85ad7fbd310a73176df8a25206331289"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":894,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":894,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.806148,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":895,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8566806a-ba62-47ff-873e-dfa1fb8d703b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.836576} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"69585760-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"69585760-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":895,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.777852,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"85ad7fbd310a73176df8a25206331289","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240548,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"85ad7fbd310a73176df8a25206331289","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"69585760-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1/signaling 200 32ms","method":"POST","requestID":"69585760-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1/signaling"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:46.155678493Z"}]},"request_id":"9f4930b7-8860-48e8-b604-ffb16139519c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.8550858} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"85ad7fbd310a73176df8a25206331289","responseTime":3,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"5988430a9b9491d14bb377483ffb3249"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"695dae90-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"695dd5a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"85ad7fbd310a73176df8a25206331289"} gateway-1 | {"time_local":"18/Jun/2025:09:55:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f09731f5-f8ef-4f35-8505-cac0b397a970? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"85ad7fbd310a73176df8a25206331289"} device-1 | {"level":"info","message":"GET /devices/f09731f5-f8ef-4f35-8505-cac0b397a970? 200 33ms","method":"GET","requestID":"85ad7fbd310a73176df8a25206331289","responseTime":33,"status":200,"url":"/devices/f09731f5-f8ef-4f35-8505-cac0b397a970?"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":896,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":896,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.667857,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":897,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"695dae90-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240548,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"695dae90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":897,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.810591,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"695dd5a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240548,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"695dd5a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U","level":"info","message":"auth send jwt","requestID":"1550b1c338dbc9ac4aa5c2f6215c62af"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1550b1c338dbc9ac4aa5c2f6215c62af","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1550b1c338dbc9ac4aa5c2f6215c62af"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:46.155678493Z"}]},"request_id":"bd1687c3-6b1e-4d8f-98b1-854eacb15c8f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.8646443} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"695dae90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:46.196441055Z"}]},"request_id":"fc3cfb65-9e4b-4d7d-87d1-c642a6afadce","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.8654807} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"695dd5a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":898,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":898,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.743737,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"1550b1c338dbc9ac4aa5c2f6215c62af","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240548,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"695dae90-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"1550b1c338dbc9ac4aa5c2f6215c62af","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"GET /devices/f09731f5-f8ef-4f35-8505-cac0b397a970? 200 12ms","method":"GET","requestID":"695dae90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/f09731f5-f8ef-4f35-8505-cac0b397a970?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"695dd5a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1? 200 13ms","method":"GET","requestID":"695dd5a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:46.196441055Z"}]},"request_id":"b2a0e49e-5c4f-48f0-adae-52bf099e31a2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.8720357} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b"},"level":"info","message":"Building connection plan","requestID":"5988430a9b9491d14bb377483ffb3249"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"de0947a5-6b55-41c9-ad44-3c66e10f492b"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"9a069da5-0d65-47ec-b824-2fc5849e6821"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"45c539a3-2e31-406a-8dac-a62b614657a5"}]},"level":"info","message":"Built pairwise service configurations","requestID":"5988430a9b9491d14bb377483ffb3249"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"1550b1c338dbc9ac4aa5c2f6215c62af","responseTime":2,"status":200,"url":"/relations/query"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"696046a0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"696046a0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"POST /rooms 201 1ms","method":"POST","requestID":"696046a0-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":1,"status":201,"url":"/rooms"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/a314c6d5-df57-46d8-8fe6-ea7150ea7951?id=999d7a9a-799d-45fd-932e-760dc7c948c9","ws://localhost/rooms/a314c6d5-df57-46d8-8fe6-ea7150ea7951?id=ffca07f1-e3c2-4f60-b1b9-cf4ca4227351"]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"5988430a9b9491d14bb377483ffb3249"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"6960e2e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1550b1c338dbc9ac4aa5c2f6215c62af"} gateway-1 | {"time_local":"18/Jun/2025:09:55:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1550b1c338dbc9ac4aa5c2f6215c62af"} device-1 | {"level":"info","message":"GET /devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1? 200 15ms","method":"GET","requestID":"1550b1c338dbc9ac4aa5c2f6215c62af","responseTime":15,"status":200,"url":"/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1?"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":899,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":899,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.67847,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6960e2e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240548,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OH0.A13iLJwEnYcKQPo_Kux532JbsBF86sxdgdgjYYwwU4U"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6960e2e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"1ff85fff-c5ce-432a-a28a-0d401eea7a1e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.8878536} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ad0fdcb9-291f-432d-b75c-1f7557b24472","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.8881505} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"6960e2e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"6960e2e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"6960e2e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/45630b5e-436d-4609-9246-489eb95dbecb'","requestID":"6960e2e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/45630b5e-436d-4609-9246-489eb95dbecb'","requestID":"6960e2e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"6960e2e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 23ms","method":"POST","requestID":"6960e2e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":23,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"6960e2e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/45630b5e-436d-4609-9246-489eb95dbecb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"45630b5e-436d-4609-9246-489eb95dbecb","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"6965c4e0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"999d7a9a-799d-45fd-932e-760dc7c948c9\" in room \"http://localhost/rooms/a314c6d5-df57-46d8-8fe6-ea7150ea7951\"","requestID":"6965c4e0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"6965c4e0-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8754e5632c21a1dcf602f0efd10e3248","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8754e5632c21a1dcf602f0efd10e3248","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/45630b5e-436d-4609-9246-489eb95dbecb"}}},"level":"info","message":"received a callback","requestID":"8754e5632c21a1dcf602f0efd10e3248"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"69663a10-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"ffca07f1-e3c2-4f60-b1b9-cf4ca4227351\" in room \"http://localhost/rooms/a314c6d5-df57-46d8-8fe6-ea7150ea7951\"","requestID":"69663a10-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"69663a10-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"999d7a9a-799d-45fd-932e-760dc7c948c9\" in room \"http://localhost/rooms/a314c6d5-df57-46d8-8fe6-ea7150ea7951\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"999d7a9a-799d-45fd-932e-760dc7c948c9\" in room \"http://localhost/rooms/a314c6d5-df57-46d8-8fe6-ea7150ea7951\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"999d7a9a-799d-45fd-932e-760dc7c948c9\" in room \"http://localhost/rooms/a314c6d5-df57-46d8-8fe6-ea7150ea7951\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"999d7a9a-799d-45fd-932e-760dc7c948c9\" in room \"http://localhost/rooms/a314c6d5-df57-46d8-8fe6-ea7150ea7951\""} device-1 | {"data":{"peerconnection":"45630b5e-436d-4609-9246-489eb95dbecb","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 15ms","method":"POST","requestID":"8754e5632c21a1dcf602f0efd10e3248","responseTime":15,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch","requestID":"8754e5632c21a1dcf602f0efd10e3248"} device-1 | {"data":{"peerconnection":"45630b5e-436d-4609-9246-489eb95dbecb","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"5988430a9b9491d14bb377483ffb3249"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"696a58c0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":900,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"47999e27-2080-4d76-a52e-53ffdbd8d5a5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.9450302} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":900,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.400842,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:48Z"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/45630b5e-436d-4609-9246-489eb95dbecb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"45630b5e-436d-4609-9246-489eb95dbecb","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"696a58c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"696a58c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"46380734155afdff99d236f3eb91a537","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"46380734155afdff99d236f3eb91a537","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/45630b5e-436d-4609-9246-489eb95dbecb"}}},"level":"info","message":"received a callback","requestID":"46380734155afdff99d236f3eb91a537"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"696a58c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/f09731f5-f8ef-4f35-8505-cac0b397a970/signaling 200 11ms","method":"POST","requestID":"696a58c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/f09731f5-f8ef-4f35-8505-cac0b397a970/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"696c5490-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":901,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:48Z"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"696ca2b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"433fea1d-63b3-4c0e-b2e3-77a7b9456c7c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.9573932} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":901,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.303946,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":902,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"696c5490-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"696c5490-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F45630b5e-436d-4609-9246-489eb95dbecb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1a875cb3-b685-4142-8e81-8bfae7563500","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240548.95984} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":902,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.203023,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/45630b5e-436d-4609-9246-489eb95dbecb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"696ca2b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/45630b5e-436d-4609-9246-489eb95dbecb","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"696ca2b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"696c5490-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1/signaling 200 8ms","method":"POST","requestID":"696c5490-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1/signaling"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"696ca2b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/45630b5e-436d-4609-9246-489eb95dbecb 200 7ms","method":"GET","requestID":"696ca2b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/peerconnections/45630b5e-436d-4609-9246-489eb95dbecb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 53ms","method":"POST","requestID":"46380734155afdff99d236f3eb91a537","responseTime":53,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch","requestID":"46380734155afdff99d236f3eb91a537"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6973cea0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":903,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:49Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9380b63b-caf8-4398-bd4a-4e697f9ea538","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240549.0063417} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":903,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.017919,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6973cea0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6973cea0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6973cea0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1/signaling 200 8ms","method":"POST","requestID":"6973cea0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"69755540-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":904,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:49Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2cad8f2a-aedc-417f-8783-b8a4d0a758b0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240549.0161107} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":904,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.384727,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:49Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OX0.sQk0NYci5w7rMrBSZhiuivKoxItr7HKPKkHdhK4-a58","level":"info","message":"auth send jwt","requestID":"a47db7ff60d4f0779a963c7310cec5f8"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"a47db7ff60d4f0779a963c7310cec5f8","responseTime":27,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"69755540-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 32ms","method":"POST","requestID":"69755540-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b","requestID":"a47db7ff60d4f0779a963c7310cec5f8"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":905,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:49Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"69755540-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/f09731f5-f8ef-4f35-8505-cac0b397a970/signaling 200 36ms","method":"POST","requestID":"69755540-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/f09731f5-f8ef-4f35-8505-cac0b397a970/signaling"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":905,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.907593,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a47db7ff60d4f0779a963c7310cec5f8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240549,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OX0.sQk0NYci5w7rMrBSZhiuivKoxItr7HKPKkHdhK4-a58"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"a47db7ff60d4f0779a963c7310cec5f8","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b","requestID":"a47db7ff60d4f0779a963c7310cec5f8"} experiment-1 | {"level":"info","message":"GET /experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b 200 9ms","method":"GET","requestID":"a47db7ff60d4f0779a963c7310cec5f8","responseTime":9,"status":200,"url":"/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b"} gateway-1 | {"time_local":"18/Jun/2025:09:55:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b HTTP/1.1","status": "200","body_bytes_sent":"1365","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a47db7ff60d4f0779a963c7310cec5f8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OX0.sQk0NYci5w7rMrBSZhiuivKoxItr7HKPKkHdhK4-a58","level":"info","message":"auth send jwt","requestID":"870097953938fccceeb7277c3791e46e"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"870097953938fccceeb7277c3791e46e","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b","requestID":"870097953938fccceeb7277c3791e46e"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":906,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:49Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":906,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.918041,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:49Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"870097953938fccceeb7277c3791e46e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240549,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OX0.sQk0NYci5w7rMrBSZhiuivKoxItr7HKPKkHdhK4-a58"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"870097953938fccceeb7277c3791e46e","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b"},"level":"info","message":"Attempting to finish experiment","requestID":"870097953938fccceeb7277c3791e46e"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"69816330-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":907,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:49Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":907,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.723372,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:49Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/45630b5e-436d-4609-9246-489eb95dbecb","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"69816330-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/45630b5e-436d-4609-9246-489eb95dbecb","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240549,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OX0.sQk0NYci5w7rMrBSZhiuivKoxItr7HKPKkHdhK4-a58"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"69816330-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:55:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/a314c6d5-df57-46d8-8fe6-ea7150ea7951?id=999d7a9a-799d-45fd-932e-760dc7c948c9 HTTP/1.1","status": "101","body_bytes_sent":"436","request_time":"0.191","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"44f916b28bd5abdaf88cd89be371d1a8"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"999d7a9a-799d-45fd-932e-760dc7c948c9\" in room \"http://localhost/rooms/a314c6d5-df57-46d8-8fe6-ea7150ea7951\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"999d7a9a-799d-45fd-932e-760dc7c948c9\" from room \"http://localhost/rooms/a314c6d5-df57-46d8-8fe6-ea7150ea7951\", code: 1006, reason: "} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/45630b5e-436d-4609-9246-489eb95dbecb' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/45630b5e-436d-4609-9246-489eb95dbecb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"45630b5e-436d-4609-9246-489eb95dbecb","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"ffca07f1-e3c2-4f60-b1b9-cf4ca4227351\" in room \"http://localhost/rooms/a314c6d5-df57-46d8-8fe6-ea7150ea7951\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"ffca07f1-e3c2-4f60-b1b9-cf4ca4227351\" from room \"http://localhost/rooms/a314c6d5-df57-46d8-8fe6-ea7150ea7951\", code: 1005, reason: "} gateway-1 | {"time_local":"18/Jun/2025:09:55:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/a314c6d5-df57-46d8-8fe6-ea7150ea7951?id=ffca07f1-e3c2-4f60-b1b9-cf4ca4227351 HTTP/1.1","status": "101","body_bytes_sent":"2","request_time":"0.190","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"18e3dc47ded69d0728fa6ab4fcaf7283"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/45630b5e-436d-4609-9246-489eb95dbecb","device":"f09731f5-f8ef-4f35-8505-cac0b397a970","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e2a2ce46cb22eba6d9743b9fe0bea985","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F45630b5e-436d-4609-9246-489eb95dbecb': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F45630b5e-436d-4609-9246-489eb95dbecb","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"46e0db16-7144-4ba3-822c-04eb3c188f76","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240549.1046336} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e2a2ce46cb22eba6d9743b9fe0bea985","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"85069863-eeed-47f3-98bc-fd6139cf6da0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240549.1050136} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"4766b3008c16426a53f86f0b8d77fb70","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/45630b5e-436d-4609-9246-489eb95dbecb"}}},"level":"info","message":"received a callback","requestID":"e2a2ce46cb22eba6d9743b9fe0bea985"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"69816330-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"4766b3008c16426a53f86f0b8d77fb70","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/45630b5e-436d-4609-9246-489eb95dbecb"}}},"level":"info","message":"received a callback","requestID":"4766b3008c16426a53f86f0b8d77fb70"} device-1 | {"data":{"peerconnection":"45630b5e-436d-4609-9246-489eb95dbecb","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"69816330-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/45630b5e-436d-4609-9246-489eb95dbecb 204 50ms","method":"DELETE","requestID":"69816330-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":50,"status":204,"url":"/peerconnections/45630b5e-436d-4609-9246-489eb95dbecb"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b"},"level":"info","message":"Successfully finished experiment","requestID":"870097953938fccceeb7277c3791e46e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"698b2730-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":908,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:49Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b6136eaf-46d4-4cc9-91f3-7a11318a675b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240549.1593046} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":908,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.326692,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"698b2730-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"698b2730-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"698b2730-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1/signaling 200 34ms","method":"POST","requestID":"698b2730-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8c25911a-7ebf-4735-b39e-ad95d1633a7b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8c25911a-7ebf-4735-b39e-ad95d1633a7b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"d411dc35-6aab-422d-a5e3-2e4dd0f9b2f5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240549.191927} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"555e907c-ed76-4d77-9365-f9a2310c43f2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240549.1920605} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6990cc80-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/update 200 39ms","method":"POST","requestID":"870097953938fccceeb7277c3791e46e","responseTime":39,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":909,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:49Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09731f5-f8ef-4f35-8505-cac0b397a970","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f9c795ff-7ca2-4612-a28d-80bfba6e591d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240549.196498} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":909,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.16949,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6990cc80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6990cc80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6990cc80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/f09731f5-f8ef-4f35-8505-cac0b397a970/signaling 200 8ms","method":"POST","requestID":"6990cc80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/f09731f5-f8ef-4f35-8505-cac0b397a970/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b","requestID":"870097953938fccceeb7277c3791e46e"} gateway-1 | {"time_local":"18/Jun/2025:09:55:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.235","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"870097953938fccceeb7277c3791e46e"} experiment-1 | {"level":"info","message":"DELETE /experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b 204 233ms","method":"DELETE","requestID":"870097953938fccceeb7277c3791e46e","responseTime":233,"status":204,"url":"/experiments/8c25911a-7ebf-4735-b39e-ad95d1633a7b"} gateway-1 | {"time_local":"18/Jun/2025:09:55:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1682","request_time":"2.152","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"ca0a28b4f3e8078c53a5ca286df45bb4"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 188ms","method":"POST","requestID":"e2a2ce46cb22eba6d9743b9fe0bea985","responseTime":188,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.191","http_referrer":"","http_user_agent":"node-fetch","requestID":"e2a2ce46cb22eba6d9743b9fe0bea985"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 188ms","method":"POST","requestID":"4766b3008c16426a53f86f0b8d77fb70","responseTime":188,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.192","http_referrer":"","http_user_agent":"node-fetch","requestID":"4766b3008c16426a53f86f0b8d77fb70"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OX0.sQk0NYci5w7rMrBSZhiuivKoxItr7HKPKkHdhK4-a58","level":"info","message":"auth send jwt","requestID":"b50f32c2b69973b13cdac2a4b282b023"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b50f32c2b69973b13cdac2a4b282b023","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"b50f32c2b69973b13cdac2a4b282b023"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":910,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:49Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":910,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.918741,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:49Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b50f32c2b69973b13cdac2a4b282b023","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240549,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OX0.sQk0NYci5w7rMrBSZhiuivKoxItr7HKPKkHdhK4-a58"} gateway-1 | {"time_local":"18/Jun/2025:09:55:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2007","request_time":"0.760","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"855d4666e6dd463969a07f0a4ca4d6ed"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"b50f32c2b69973b13cdac2a4b282b023","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/9f0b76a8-a8e8-4ad0-b074-4d0f759d72f1' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5ad62538-e610-41ff-a36e-8986748537c4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240549.3184295} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"b50f32c2b69973b13cdac2a4b282b023","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"51276596-a44f-4ff7-ad91-76d2a336583d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240549.323037} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"b50f32c2b69973b13cdac2a4b282b023","responseTime":3,"status":200,"url":"/relations/update"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/f09731f5-f8ef-4f35-8505-cac0b397a970' closed"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"ddda4afb-e496-4293-b350-50bf80df47d6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240549.3347816} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"14c1a2b0-b82b-4eb3-801c-8cf11bb209d7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240549.3350236} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"b50f32c2b69973b13cdac2a4b282b023","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:49.334744981Z"}]},"request_id":"dc36fda3-851e-4dd1-8ee2-3d338e4a96c9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240549.339176} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"b50f32c2b69973b13cdac2a4b282b023","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"b50f32c2b69973b13cdac2a4b282b023"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"b50f32c2b69973b13cdac2a4b282b023","responseTime":44,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b50f32c2b69973b13cdac2a4b282b023"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OX0.sQk0NYci5w7rMrBSZhiuivKoxItr7HKPKkHdhK4-a58","level":"info","message":"auth send jwt","requestID":"2cd580ebe7ed955fc442344485e6d8b7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2cd580ebe7ed955fc442344485e6d8b7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"2cd580ebe7ed955fc442344485e6d8b7"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":911,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:49Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":911,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.688061,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:49Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2cd580ebe7ed955fc442344485e6d8b7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240549,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU0OX0.sQk0NYci5w7rMrBSZhiuivKoxItr7HKPKkHdhK4-a58"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2cd580ebe7ed955fc442344485e6d8b7","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"446df92a-27d3-4ff6-85aa-bbd284fc41b2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240549.3601277} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2cd580ebe7ed955fc442344485e6d8b7","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"79b1983e-7d16-4182-a5a9-0c38398c4558","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240549.3645632} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"2cd580ebe7ed955fc442344485e6d8b7","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"8d7f8130-9eeb-4847-82d7-16caacdee32d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240549.3725142} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c8cbef7c-526b-427b-8fb3-e6f4acb21e8b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240549.3727133} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"2cd580ebe7ed955fc442344485e6d8b7","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:49.372478106Z"}]},"request_id":"b258734d-ccf1-41df-ac69-a2c50c61dacb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240549.3767827} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2cd580ebe7ed955fc442344485e6d8b7","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"2cd580ebe7ed955fc442344485e6d8b7"} gateway-1 | {"time_local":"18/Jun/2025:09:55:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2cd580ebe7ed955fc442344485e6d8b7"} device-1 | {"level":"info","message":"POST /devices? 201 33ms","method":"POST","requestID":"2cd580ebe7ed955fc442344485e6d8b7","responseTime":33,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MH0.8zfSj0HNKiQukOdIxkkEtHilu2o6yOR14dHzO_V4ODk","level":"info","message":"auth send jwt","requestID":"d9d6c7f962d5a3df88146b1a2d28927e"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d9d6c7f962d5a3df88146b1a2d28927e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"d9d6c7f962d5a3df88146b1a2d28927e"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":912,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:50Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":912,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.771902,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:50Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d9d6c7f962d5a3df88146b1a2d28927e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240550,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MH0.8zfSj0HNKiQukOdIxkkEtHilu2o6yOR14dHzO_V4ODk"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d9d6c7f962d5a3df88146b1a2d28927e","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:49.372478106Z"}]},"request_id":"db52152b-2236-4ebc-872f-a43cd450db7a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240550.3021076} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d9d6c7f962d5a3df88146b1a2d28927e","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3553da69-6231-466f-b9aa-14bbd04827d4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240550.3059347} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"d9d6c7f962d5a3df88146b1a2d28927e","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:49.372478106Z"}]},"request_id":"b501a0d5-7fb5-401e-81e7-40be0f5cba74","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240550.3157356} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d9d6c7f962d5a3df88146b1a2d28927e","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"d9d6c7f962d5a3df88146b1a2d28927e"} gateway-1 | {"time_local":"18/Jun/2025:09:55:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74 HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.047","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"d9d6c7f962d5a3df88146b1a2d28927e"} device-1 | {"level":"info","message":"PATCH /devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74 200 43ms","method":"PATCH","requestID":"d9d6c7f962d5a3df88146b1a2d28927e","responseTime":43,"status":200,"url":"/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MH0.8zfSj0HNKiQukOdIxkkEtHilu2o6yOR14dHzO_V4ODk","level":"info","message":"auth send jwt","requestID":"006c831db4dde95e23aa2d7c1da0f87a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"006c831db4dde95e23aa2d7c1da0f87a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"006c831db4dde95e23aa2d7c1da0f87a"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":913,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:50Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":913,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.650664,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:50Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"006c831db4dde95e23aa2d7c1da0f87a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240550,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MH0.8zfSj0HNKiQukOdIxkkEtHilu2o6yOR14dHzO_V4ODk"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"006c831db4dde95e23aa2d7c1da0f87a","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"006c831db4dde95e23aa2d7c1da0f87a"} gateway-1 | {"time_local":"18/Jun/2025:09:55:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.018","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"006c831db4dde95e23aa2d7c1da0f87a"} device-1 | {"level":"info","message":"POST /devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74/websocket 200 14ms","method":"POST","requestID":"006c831db4dde95e23aa2d7c1da0f87a","responseTime":14,"status":200,"url":"/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74' connected"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"6b898132-c01e-4585-88a0-449b01ba7dc0\" in room \"http://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8\"","requestID":"677c1d50-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"b0fcd2fa-01f4-4f6e-b862-b9d73d5969c4\" in room \"http://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8\"","requestID":"677c6b70-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"90e44bc4d75e2ed948c9e4a525d6728c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"90e44bc4d75e2ed948c9e4a525d6728c","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"90e44bc4d75e2ed948c9e4a525d6728c"} device-1 | {"level":"info","message":"OPTIONS /devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf/websocket 200 1ms","method":"OPTIONS","requestID":"90e44bc4d75e2ed948c9e4a525d6728c","responseTime":1,"status":200,"url":"/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MX0.4gbkPnzEGIsf4rD0Zj0Yx-C2PF9PdTyg0xLbDzkmTS0","level":"info","message":"auth send jwt","requestID":"5ac9bd7162c709600b2747451e8f423d"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5ac9bd7162c709600b2747451e8f423d","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"5ac9bd7162c709600b2747451e8f423d"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":914,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":914,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.19999,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5ac9bd7162c709600b2747451e8f423d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240551,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MX0.4gbkPnzEGIsf4rD0Zj0Yx-C2PF9PdTyg0xLbDzkmTS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"5ac9bd7162c709600b2747451e8f423d","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"5ac9bd7162c709600b2747451e8f423d"} device-1 | {"level":"info","message":"POST /devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf/websocket 200 20ms","method":"POST","requestID":"5ac9bd7162c709600b2747451e8f423d","responseTime":20,"status":200,"url":"/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:55:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"5ac9bd7162c709600b2747451e8f423d"} device-1 | {"level":"info","message":"device 'http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"9104a642ee5e482b5d12b8e570698b2b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9104a642ee5e482b5d12b8e570698b2b","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9104a642ee5e482b5d12b8e570698b2b"} device-1 | {"level":"info","message":"OPTIONS /devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf? 200 1ms","method":"OPTIONS","requestID":"9104a642ee5e482b5d12b8e570698b2b","responseTime":1,"status":200,"url":"/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MX0.4gbkPnzEGIsf4rD0Zj0Yx-C2PF9PdTyg0xLbDzkmTS0","level":"info","message":"auth send jwt","requestID":"503e3b39faa27aa561e35839ad8bc8cc"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"503e3b39faa27aa561e35839ad8bc8cc","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"503e3b39faa27aa561e35839ad8bc8cc"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":915,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":915,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.725313,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"503e3b39faa27aa561e35839ad8bc8cc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240551,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MX0.4gbkPnzEGIsf4rD0Zj0Yx-C2PF9PdTyg0xLbDzkmTS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"503e3b39faa27aa561e35839ad8bc8cc","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:49.334744981Z"}]},"request_id":"08c1e96e-d4f1-4526-8a06-15f9f994fa82","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240551.763004} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"503e3b39faa27aa561e35839ad8bc8cc","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8c144b0b-a030-446e-84a8-e5082cbb1af3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240551.7671134} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"503e3b39faa27aa561e35839ad8bc8cc","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:49.334744981Z"}]},"request_id":"b684e766-3865-4e63-a111-009ac58016a1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240551.7760644} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"503e3b39faa27aa561e35839ad8bc8cc","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"503e3b39faa27aa561e35839ad8bc8cc"} gateway-1 | {"time_local":"18/Jun/2025:09:55:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.028","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"503e3b39faa27aa561e35839ad8bc8cc"} device-1 | {"level":"info","message":"PATCH /devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf? 200 23ms","method":"PATCH","requestID":"503e3b39faa27aa561e35839ad8bc8cc","responseTime":23,"status":200,"url":"/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MX0.4gbkPnzEGIsf4rD0Zj0Yx-C2PF9PdTyg0xLbDzkmTS0","level":"info","message":"auth send jwt","requestID":"3ac25a65430e639f363cb4ccf4db7b03"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3ac25a65430e639f363cb4ccf4db7b03","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3ac25a65430e639f363cb4ccf4db7b03"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":916,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":916,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.682689,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3ac25a65430e639f363cb4ccf4db7b03","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240551,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MX0.4gbkPnzEGIsf4rD0Zj0Yx-C2PF9PdTyg0xLbDzkmTS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3ac25a65430e639f363cb4ccf4db7b03","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:49.334744981Z"}]},"request_id":"5f2819d6-1fc0-40bc-b7d8-02f58b19b755","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240551.7940793} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3ac25a65430e639f363cb4ccf4db7b03","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3ac25a65430e639f363cb4ccf4db7b03"} device-1 | {"level":"info","message":"GET /devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf? 200 10ms","method":"GET","requestID":"3ac25a65430e639f363cb4ccf4db7b03","responseTime":10,"status":200,"url":"/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3ac25a65430e639f363cb4ccf4db7b03"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MX0.4gbkPnzEGIsf4rD0Zj0Yx-C2PF9PdTyg0xLbDzkmTS0","level":"info","message":"auth send jwt","requestID":"62e1939a95f429e1ed09422596960ca3"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"62e1939a95f429e1ed09422596960ca3"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"62e1939a95f429e1ed09422596960ca3","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":917,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":917,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.589018,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"62e1939a95f429e1ed09422596960ca3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240551,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MX0.4gbkPnzEGIsf4rD0Zj0Yx-C2PF9PdTyg0xLbDzkmTS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"62e1939a95f429e1ed09422596960ca3","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:49.372478106Z"}]},"request_id":"8d3809b7-9b66-4e40-b1df-26b54b1844f8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240551.8077455} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"62e1939a95f429e1ed09422596960ca3","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"62e1939a95f429e1ed09422596960ca3"} gateway-1 | {"time_local":"18/Jun/2025:09:55:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"62e1939a95f429e1ed09422596960ca3"} device-1 | {"level":"info","message":"GET /devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74? 200 9ms","method":"GET","requestID":"62e1939a95f429e1ed09422596960ca3","responseTime":9,"status":200,"url":"/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MX0.4gbkPnzEGIsf4rD0Zj0Yx-C2PF9PdTyg0xLbDzkmTS0","level":"info","message":"auth send jwt","requestID":"554210c7f2c019967e76b2f3c9973966"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"554210c7f2c019967e76b2f3c9973966","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"554210c7f2c019967e76b2f3c9973966"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":918,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":918,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.605365,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"554210c7f2c019967e76b2f3c9973966","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240551,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MX0.4gbkPnzEGIsf4rD0Zj0Yx-C2PF9PdTyg0xLbDzkmTS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"554210c7f2c019967e76b2f3c9973966","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e"},"level":"info","message":"Attempting to run experiment","requestID":"554210c7f2c019967e76b2f3c9973966"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e"},"level":"info","message":"Attempting to book experiment","requestID":"554210c7f2c019967e76b2f3c9973966"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e"},"level":"info","message":"Successfully booked experiment","requestID":"554210c7f2c019967e76b2f3c9973966"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6b259d50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6b25c460-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":919,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":919,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.871957,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":920,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b259d50-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240551,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MX0.4gbkPnzEGIsf4rD0Zj0Yx-C2PF9PdTyg0xLbDzkmTS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"6b259d50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":920,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.710173,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b25c460-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240551,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MX0.4gbkPnzEGIsf4rD0Zj0Yx-C2PF9PdTyg0xLbDzkmTS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"6b25c460-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:49.334744981Z"}]},"request_id":"8b4a8cce-bfa0-47fe-aed6-8be73c38b589","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240551.8775632} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6b259d50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:49.372478106Z"}]},"request_id":"ca5a436a-8ecf-4d02-b68e-76ef6071bf58","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240551.8786497} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6b25c460-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6b259d50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf? 200 37ms","method":"GET","requestID":"6b259d50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6b25c460-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74? 200 36ms","method":"GET","requestID":"6b25c460-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e"},"level":"info","message":"Setting up experiment","requestID":"554210c7f2c019967e76b2f3c9973966"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"554210c7f2c019967e76b2f3c9973966"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"554210c7f2c019967e76b2f3c9973966"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e"},"level":"info","message":"Successfully locked booking for experiment","requestID":"554210c7f2c019967e76b2f3c9973966"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e"},"level":"info","message":"Successfully set up experiment","requestID":"554210c7f2c019967e76b2f3c9973966"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6b338000-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6b33a710-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e"},"level":"info","message":"Successfully running experiment","requestID":"554210c7f2c019967e76b2f3c9973966"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":921,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":921,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.662601,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":922,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b338000-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240551,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MX0.4gbkPnzEGIsf4rD0Zj0Yx-C2PF9PdTyg0xLbDzkmTS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6b338000-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":922,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.503533,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b33a710-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240551,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MX0.4gbkPnzEGIsf4rD0Zj0Yx-C2PF9PdTyg0xLbDzkmTS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6b33a710-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:49.334744981Z"}]},"request_id":"f6128f51-83e2-4c59-9e0d-6824760c224e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240551.9442925} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"6b338000-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":26,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:49.372478106Z"}]},"request_id":"ee221787-fe1a-4635-957d-ff23ac2df45b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240551.9691844} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"6b33a710-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6b338000-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf? 200 38ms","method":"GET","requestID":"6b338000-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":38,"status":200,"url":"/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6b33a710-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74? 200 37ms","method":"GET","requestID":"6b33a710-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fab68ad1e-d3a2-4d12-ac0f-78826f07814e#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fab68ad1e-d3a2-4d12-ac0f-78826f07814e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"d7e92667-2e72-4fd8-8a20-b14fd3abed2c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240551.9775016} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6b39c190-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0acc0b86-5a65-416a-b740-2bfac7869fc2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240551.9776678} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"554210c7f2c019967e76b2f3c9973966","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":923,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5d308d8f-d591-46a8-952a-372267f554ef","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240551.9824955} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":923,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.436923,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b39c190-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"554210c7f2c019967e76b2f3c9973966"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6b39c190-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:55:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1292","request_time":"0.174","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"554210c7f2c019967e76b2f3c9973966"} experiment-1 | {"level":"info","message":"POST /experiments? 201 170ms","method":"POST","requestID":"554210c7f2c019967e76b2f3c9973966","responseTime":170,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6b39c190-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf/signaling 200 10ms","method":"POST","requestID":"6b39c190-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MX0.4gbkPnzEGIsf4rD0Zj0Yx-C2PF9PdTyg0xLbDzkmTS0","level":"info","message":"auth send jwt","requestID":"06bf263a60d3308e93e336ffed5a1401"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6b3b9650-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"06bf263a60d3308e93e336ffed5a1401","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"06bf263a60d3308e93e336ffed5a1401"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":924,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":925,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:51Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":925,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.940222,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"06bf263a60d3308e93e336ffed5a1401","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240551,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MX0.4gbkPnzEGIsf4rD0Zj0Yx-C2PF9PdTyg0xLbDzkmTS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"06bf263a60d3308e93e336ffed5a1401","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c8ea3889-a6a5-4799-a7c6-7f501f464b03","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.0172105} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":924,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.597908,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b3b9650-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"6b3b9650-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:49.334744981Z"}]},"request_id":"fb84d8b1-3e78-435a-a7f7-f9c0bea04377","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.0210402} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6b3b9650-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74/signaling 200 32ms","method":"POST","requestID":"6b3b9650-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"06bf263a60d3308e93e336ffed5a1401","responseTime":2,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"554210c7f2c019967e76b2f3c9973966"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6b40ed80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6b40ed81-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"06bf263a60d3308e93e336ffed5a1401"} device-1 | {"level":"info","message":"GET /devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf? 200 36ms","method":"GET","requestID":"06bf263a60d3308e93e336ffed5a1401","responseTime":36,"status":200,"url":"/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"06bf263a60d3308e93e336ffed5a1401"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":926,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":926,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.711729,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":927,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b40ed80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240551,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MX0.4gbkPnzEGIsf4rD0Zj0Yx-C2PF9PdTyg0xLbDzkmTS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6b40ed80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":927,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.5703,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b40ed81-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240551,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MX0.4gbkPnzEGIsf4rD0Zj0Yx-C2PF9PdTyg0xLbDzkmTS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6b40ed81-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1Mn0.S9QSIVlpOETNWHZLW20Fu8kbUfMPz_6ELvxBy6SmLzs","level":"info","message":"auth send jwt","requestID":"5e2dbddd98ed0e4cee1b81f7807b551a"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5e2dbddd98ed0e4cee1b81f7807b551a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5e2dbddd98ed0e4cee1b81f7807b551a"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:49.334744981Z"}]},"request_id":"89d68680-ee5a-45b2-b9ac-5a7a642a7f07","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.0315077} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6b40ed80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:49.372478106Z"}]},"request_id":"da69b1b5-11bb-4048-adea-2cd524c50899","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.0323017} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6b40ed80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf? 200 10ms","method":"GET","requestID":"6b40ed80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6b40ed81-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":928,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":928,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.969087,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5e2dbddd98ed0e4cee1b81f7807b551a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240552,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1Mn0.S9QSIVlpOETNWHZLW20Fu8kbUfMPz_6ELvxBy6SmLzs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5e2dbddd98ed0e4cee1b81f7807b551a","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6b40ed81-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74? 200 14ms","method":"GET","requestID":"6b40ed81-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e"},"level":"info","message":"Building connection plan","requestID":"554210c7f2c019967e76b2f3c9973966"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"132ed6df-6dfd-4cf4-9c8e-50e47018f4a6"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"a1d39563-4afb-4341-b7d0-5fe3a8479860"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"38d04351-b112-4203-8b03-82dcc2af2683"}]},"level":"info","message":"Built pairwise service configurations","requestID":"554210c7f2c019967e76b2f3c9973966"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632?id=44d29ba7-d0ec-419e-a0b5-c09a181414ae","ws://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632?id=60bc5aef-0115-41f5-b776-906782ba4a40"]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"554210c7f2c019967e76b2f3c9973966"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:49.372478106Z"}]},"request_id":"519ee261-0a23-4c0b-8825-fcb4ed303976","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.0391104} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"6b472f10-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"6b472f10-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"POST /rooms 201 1ms","method":"POST","requestID":"6b472f10-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":1,"status":201,"url":"/rooms"} authorization-1 | {"level":"info","message":"POST /relations/query 200 30ms","method":"POST","requestID":"5e2dbddd98ed0e4cee1b81f7807b551a","responseTime":30,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"6b47cb50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5e2dbddd98ed0e4cee1b81f7807b551a"} gateway-1 | {"time_local":"18/Jun/2025:09:55:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5e2dbddd98ed0e4cee1b81f7807b551a"} device-1 | {"level":"info","message":"GET /devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74? 200 40ms","method":"GET","requestID":"5e2dbddd98ed0e4cee1b81f7807b551a","responseTime":40,"status":200,"url":"/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74?"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":929,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":929,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.865573,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b47cb50-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240551,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1MX0.4gbkPnzEGIsf4rD0Zj0Yx-C2PF9PdTyg0xLbDzkmTS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6b47cb50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"a5091134-d99a-4e0d-a7a9-c493384a9438","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.0786014} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8244f702-dc23-4e84-9743-532132bff0e1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.0787466} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"6b47cb50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"6b47cb50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"6b47cb50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/b04b1790-fabb-439a-8560-172803878aa1'","requestID":"6b47cb50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/b04b1790-fabb-439a-8560-172803878aa1'","requestID":"6b47cb50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"6b47cb50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 44ms","method":"POST","requestID":"6b47cb50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":44,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"6b47cb50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/b04b1790-fabb-439a-8560-172803878aa1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b04b1790-fabb-439a-8560-172803878aa1","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"6b5008b0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"60bc5aef-0115-41f5-b776-906782ba4a40\" in room \"http://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632\"","requestID":"6b5008b0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"6b5008b0-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ee85d98d016de47730ae3088ed47c7ae","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ee85d98d016de47730ae3088ed47c7ae","responseTime":1,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"6b502fc0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"44d29ba7-d0ec-419e-a0b5-c09a181414ae\" in room \"http://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632\"","requestID":"6b502fc0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"6b502fc0-4c2a-11f0-b702-8b8a85c3ad9a"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/b04b1790-fabb-439a-8560-172803878aa1"}}},"level":"info","message":"received a callback","requestID":"ee85d98d016de47730ae3088ed47c7ae"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"60bc5aef-0115-41f5-b776-906782ba4a40\" in room \"http://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"60bc5aef-0115-41f5-b776-906782ba4a40\" in room \"http://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"60bc5aef-0115-41f5-b776-906782ba4a40\" in room \"http://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"60bc5aef-0115-41f5-b776-906782ba4a40\" in room \"http://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"60bc5aef-0115-41f5-b776-906782ba4a40\" in room \"http://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"60bc5aef-0115-41f5-b776-906782ba4a40\" in room \"http://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"60bc5aef-0115-41f5-b776-906782ba4a40\" in room \"http://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"60bc5aef-0115-41f5-b776-906782ba4a40\" in room \"http://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632\""} device-1 | {"data":{"peerconnection":"b04b1790-fabb-439a-8560-172803878aa1","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"ee85d98d016de47730ae3088ed47c7ae","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch","requestID":"ee85d98d016de47730ae3088ed47c7ae"} device-1 | {"data":{"peerconnection":"b04b1790-fabb-439a-8560-172803878aa1","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"554210c7f2c019967e76b2f3c9973966"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6b57f7f0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":930,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:52Z"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/b04b1790-fabb-439a-8560-172803878aa1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b04b1790-fabb-439a-8560-172803878aa1","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ee26a9d8-e062-468f-a56c-455d913d3dc3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.1804752} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":930,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.541678,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:52Z"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"5104b75663657aca88bb133a79717d71","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5104b75663657aca88bb133a79717d71","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b57f7f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"6b57f7f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/b04b1790-fabb-439a-8560-172803878aa1"}}},"level":"info","message":"received a callback","requestID":"5104b75663657aca88bb133a79717d71"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"6b5d9d40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6b57f7f0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":931,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb04b1790-fabb-439a-8560-172803878aa1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"15016fb1-adbe-4ed8-82f0-f191c335dafd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.21646} device-1 | {"level":"info","message":"POST /devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf/signaling 200 41ms","method":"POST","requestID":"6b57f7f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":41,"status":200,"url":"/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf/signaling"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":931,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.577506,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b04b1790-fabb-439a-8560-172803878aa1","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b5d9d40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/b04b1790-fabb-439a-8560-172803878aa1","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6b5d9d40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6b5eaeb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"6b5d9d40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/b04b1790-fabb-439a-8560-172803878aa1 200 9ms","method":"GET","requestID":"6b5d9d40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/peerconnections/b04b1790-fabb-439a-8560-172803878aa1"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":932,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"627b804a-da9f-4fd1-9097-dd83bc81f0b4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.2245076} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":932,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.228446,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b5eaeb0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"6b5eaeb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6b5eaeb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74/signaling 200 10ms","method":"POST","requestID":"6b5eaeb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1Mn0.S9QSIVlpOETNWHZLW20Fu8kbUfMPz_6ELvxBy6SmLzs","level":"info","message":"auth send jwt","requestID":"b13ae150c5144d6ac47fa75db253fe65"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"b13ae150c5144d6ac47fa75db253fe65","responseTime":26,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e","requestID":"b13ae150c5144d6ac47fa75db253fe65"} forwarding-1 | {"level":"info","message":"Participant \"79ebc7d7-27e1-4312-ad46-fbcdfbbbc02d\" in room \"http://localhost/rooms/f35921b9-32db-4115-b124-9de13495582c\" did not answer hearbeat check, closing connection","requestID":"656d1370-4c2a-11f0-b702-8b8a85c3ad9a"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":933,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:52Z"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 78ms","method":"POST","requestID":"5104b75663657aca88bb133a79717d71","responseTime":78,"status":200,"url":"/callbacks/experiment"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":933,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.931439,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:52Z"} gateway-1 | {"time_local":"18/Jun/2025:09:55:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.082","http_referrer":"","http_user_agent":"node-fetch","requestID":"5104b75663657aca88bb133a79717d71"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6b653e60-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b13ae150c5144d6ac47fa75db253fe65","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240552,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1Mn0.S9QSIVlpOETNWHZLW20Fu8kbUfMPz_6ELvxBy6SmLzs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"b13ae150c5144d6ac47fa75db253fe65","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":934,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dc0f417c-7b56-4f3c-bfc1-f89f63637537","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.2673817} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":934,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.49113,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:52Z"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e","requestID":"b13ae150c5144d6ac47fa75db253fe65"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b653e60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6b653e60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:55:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e HTTP/1.1","status": "200","body_bytes_sent":"1365","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b13ae150c5144d6ac47fa75db253fe65"} experiment-1 | {"level":"info","message":"GET /experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e 200 11ms","method":"GET","requestID":"b13ae150c5144d6ac47fa75db253fe65","responseTime":11,"status":200,"url":"/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6b653e60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf/signaling 200 9ms","method":"POST","requestID":"6b653e60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1Mn0.S9QSIVlpOETNWHZLW20Fu8kbUfMPz_6ELvxBy6SmLzs","level":"info","message":"auth send jwt","requestID":"b5e840013912306a2cd7bb0664cf2934"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b5e840013912306a2cd7bb0664cf2934","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6b671320-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e","requestID":"b5e840013912306a2cd7bb0664cf2934"} forwarding-1 | {"level":"info","message":"Participant \"389cd16f-fe16-46a2-a48c-9f749f2c0044\" in room \"http://localhost/rooms/f35921b9-32db-4115-b124-9de13495582c\" did not answer hearbeat check, closing connection","requestID":"656d3a80-4c2a-11f0-b702-8b8a85c3ad9a"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":935,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":936,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":936,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.579297,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b5e840013912306a2cd7bb0664cf2934","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240552,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1Mn0.S9QSIVlpOETNWHZLW20Fu8kbUfMPz_6ELvxBy6SmLzs"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"b5e840013912306a2cd7bb0664cf2934","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e0961084-e361-4217-b14c-86515f6a4553","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.2776935} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":935,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.216876,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b671320-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6b671320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e"},"level":"info","message":"Attempting to finish experiment","requestID":"b5e840013912306a2cd7bb0664cf2934"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6b671320-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74/signaling 200 7ms","method":"POST","requestID":"6b671320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74/signaling"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"6b6872b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":937,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":937,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.79762,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b04b1790-fabb-439a-8560-172803878aa1","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b6872b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/b04b1790-fabb-439a-8560-172803878aa1","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240552,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1Mn0.S9QSIVlpOETNWHZLW20Fu8kbUfMPz_6ELvxBy6SmLzs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6b6872b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:55:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632?id=60bc5aef-0115-41f5-b776-906782ba4a40 HTTP/1.1","status": "101","body_bytes_sent":"872","request_time":"0.195","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"e3b02c0381438c3fbd19b8e2be4dcae5"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"60bc5aef-0115-41f5-b776-906782ba4a40\" in room \"http://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"60bc5aef-0115-41f5-b776-906782ba4a40\" from room \"http://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632\", code: 1006, reason: "} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/b04b1790-fabb-439a-8560-172803878aa1","device":"df8e0e4b-9833-4564-bc46-9613c7fe2fdf","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} gateway-1 | {"time_local":"18/Jun/2025:09:55:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632?id=44d29ba7-d0ec-419e-a0b5-c09a181414ae HTTP/1.1","status": "101","body_bytes_sent":"2","request_time":"0.195","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c7da7d8a5b937e3b8db040817024bbfc"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/b04b1790-fabb-439a-8560-172803878aa1' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/b04b1790-fabb-439a-8560-172803878aa1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b04b1790-fabb-439a-8560-172803878aa1","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"44d29ba7-d0ec-419e-a0b5-c09a181414ae\" in room \"http://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"44d29ba7-d0ec-419e-a0b5-c09a181414ae\" from room \"http://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632\", code: 1005, reason: "} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb04b1790-fabb-439a-8560-172803878aa1': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb04b1790-fabb-439a-8560-172803878aa1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"cb12d2be-ff1c-42bf-a952-6996351134fe","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.320852} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"dbc9f9ce66200d2e2844c113884d93b4","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"dbc9f9ce66200d2e2844c113884d93b4","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0d206461-bbea-4abb-96fc-bcdbde7b0811","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.3211725} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"6b6872b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/b04b1790-fabb-439a-8560-172803878aa1"}}},"level":"info","message":"received a callback","requestID":"dbc9f9ce66200d2e2844c113884d93b4"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"dd5127ec35a7b330b2f9f07d9a0db90f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"dd5127ec35a7b330b2f9f07d9a0db90f","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/b04b1790-fabb-439a-8560-172803878aa1"}}},"level":"info","message":"received a callback","requestID":"dd5127ec35a7b330b2f9f07d9a0db90f"} device-1 | {"data":{"peerconnection":"b04b1790-fabb-439a-8560-172803878aa1","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"6b6872b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/b04b1790-fabb-439a-8560-172803878aa1 204 80ms","method":"DELETE","requestID":"6b6872b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":80,"status":204,"url":"/peerconnections/b04b1790-fabb-439a-8560-172803878aa1"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e"},"level":"info","message":"Successfully finished experiment","requestID":"b5e840013912306a2cd7bb0664cf2934"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6b7ac230-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":938,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf8e0e4b-9833-4564-bc46-9613c7fe2fdf","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"90086790-0cf0-4bcc-a015-24ae8ec43862","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.4065485} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":938,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.210773,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b7ac230-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6b7ac230-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6b7ac230-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf/signaling 200 7ms","method":"POST","requestID":"6b7ac230-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6b7c21c0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fab68ad1e-d3a2-4d12-ac0f-78826f07814e': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fab68ad1e-d3a2-4d12-ac0f-78826f07814e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"596ba195-581b-4901-bd33-f5887f8decba","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.413551} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4d252b02-2385-4e8b-92b6-6dd955565caf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.413724} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"b5e840013912306a2cd7bb0664cf2934","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":939,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F75ea8b76-af2a-401b-8d9d-fff8f0e45b74","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f8cf6cc2-9540-4264-8c46-a5085a452ec8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.41611} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":939,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.130559,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b7c21c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6b7c21c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6b7c21c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74/signaling 200 8ms","method":"POST","requestID":"6b7c21c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e","requestID":"b5e840013912306a2cd7bb0664cf2934"} gateway-1 | {"time_local":"18/Jun/2025:09:55:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.220","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b5e840013912306a2cd7bb0664cf2934"} experiment-1 | {"level":"info","message":"DELETE /experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e 204 218ms","method":"DELETE","requestID":"b5e840013912306a2cd7bb0664cf2934","responseTime":218,"status":204,"url":"/experiments/ab68ad1e-d3a2-4d12-ac0f-78826f07814e"} gateway-1 | {"time_local":"18/Jun/2025:09:55:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1681","request_time":"2.133","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"4758569cc08b336ad8f2bb1c6599b52e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 170ms","method":"POST","requestID":"dbc9f9ce66200d2e2844c113884d93b4","responseTime":170,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 170ms","method":"POST","requestID":"dd5127ec35a7b330b2f9f07d9a0db90f","responseTime":170,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1Mn0.S9QSIVlpOETNWHZLW20Fu8kbUfMPz_6ELvxBy6SmLzs","level":"info","message":"auth send jwt","requestID":"548ff44d38c351f139031613a3b42712"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"548ff44d38c351f139031613a3b42712","responseTime":3,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.173","http_referrer":"","http_user_agent":"node-fetch","requestID":"dbc9f9ce66200d2e2844c113884d93b4"} gateway-1 | {"time_local":"18/Jun/2025:09:55:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.174","http_referrer":"","http_user_agent":"node-fetch","requestID":"dd5127ec35a7b330b2f9f07d9a0db90f"} device-1 | {"level":"info","message":"postDevices called","requestID":"548ff44d38c351f139031613a3b42712"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":940,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":940,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.914268,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:52Z"} gateway-1 | {"time_local":"18/Jun/2025:09:55:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2008","request_time":"0.789","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7c1423bdfe48f2fc5cc5e27a63aaf64d"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"548ff44d38c351f139031613a3b42712","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240552,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1Mn0.S9QSIVlpOETNWHZLW20Fu8kbUfMPz_6ELvxBy6SmLzs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"548ff44d38c351f139031613a3b42712","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/75ea8b76-af2a-401b-8d9d-fff8f0e45b74' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e14e0744-d00f-4cd0-80ad-05cee9e33824","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.5187492} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"548ff44d38c351f139031613a3b42712","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/df8e0e4b-9833-4564-bc46-9613c7fe2fdf' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c091d9a8-0355-497a-a4d8-9cc88cdc8431","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.5238664} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"548ff44d38c351f139031613a3b42712","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"357e5cf9-577a-494e-95c6-e73952526788","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.532512} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9944adca-7a58-4bf1-89e4-faf2579cd29f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.5326083} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"548ff44d38c351f139031613a3b42712","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:52.532484397Z"}]},"request_id":"2da46b37-2b3b-4282-aba0-f47a13bf18c3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.5364423} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"548ff44d38c351f139031613a3b42712","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"548ff44d38c351f139031613a3b42712"} gateway-1 | {"time_local":"18/Jun/2025:09:55:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"548ff44d38c351f139031613a3b42712"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"548ff44d38c351f139031613a3b42712","responseTime":40,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1Mn0.S9QSIVlpOETNWHZLW20Fu8kbUfMPz_6ELvxBy6SmLzs","level":"info","message":"auth send jwt","requestID":"229c33c0a840a46c8e34c55b603133d4"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"229c33c0a840a46c8e34c55b603133d4","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"229c33c0a840a46c8e34c55b603133d4"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":941,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":941,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.676251,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"229c33c0a840a46c8e34c55b603133d4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240552,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1Mn0.S9QSIVlpOETNWHZLW20Fu8kbUfMPz_6ELvxBy6SmLzs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"229c33c0a840a46c8e34c55b603133d4","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f3941e7d-8a49-4fa1-b98f-cbd1c9e343f0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.5570621} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"229c33c0a840a46c8e34c55b603133d4","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"59d4698b-4287-4756-95f9-19cc730927c7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.5614216} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"229c33c0a840a46c8e34c55b603133d4","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"1e132b26-2c21-493b-80df-fc75bc04c8c3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.5878885} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"13b91da7-cff2-4ac2-8c7a-4822945c5e5c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.5881135} authorization-1 | {"level":"info","message":"POST /relations/update 200 29ms","method":"POST","requestID":"229c33c0a840a46c8e34c55b603133d4","responseTime":29,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:52.587852211Z"}]},"request_id":"3a7a4e96-b090-4a6b-a458-4e7b824a5b82","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240552.5919073} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"229c33c0a840a46c8e34c55b603133d4","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"229c33c0a840a46c8e34c55b603133d4"} gateway-1 | {"time_local":"18/Jun/2025:09:55:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"229c33c0a840a46c8e34c55b603133d4"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"229c33c0a840a46c8e34c55b603133d4","responseTime":50,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1M30.2icv1KyDh9EzEE1pii7otNgfLKCyo2jMGqF1wz4UiLE","level":"info","message":"auth send jwt","requestID":"011c096fbda91dbcd357caa8e8db44c9"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"011c096fbda91dbcd357caa8e8db44c9","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"011c096fbda91dbcd357caa8e8db44c9"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":942,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:53Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":942,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.658169,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:53Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"011c096fbda91dbcd357caa8e8db44c9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240553,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1M30.2icv1KyDh9EzEE1pii7otNgfLKCyo2jMGqF1wz4UiLE"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"011c096fbda91dbcd357caa8e8db44c9","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:52.532484397Z"}]},"request_id":"9da1da5a-1a5d-43ec-9219-66059f509de4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240553.5283337} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"011c096fbda91dbcd357caa8e8db44c9","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"382b3cbf-85dd-4007-8660-f8d3fe14da92","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240553.5565271} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"011c096fbda91dbcd357caa8e8db44c9","responseTime":5,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:52.532484397Z"}]},"request_id":"d04de5ec-903a-4d06-a585-f7f67e2ef43d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240553.5683033} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"011c096fbda91dbcd357caa8e8db44c9","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"011c096fbda91dbcd357caa8e8db44c9"} gateway-1 | {"time_local":"18/Jun/2025:09:55:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d544a2ce-f75c-409b-a577-3a16f67d2d11 HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.054","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"011c096fbda91dbcd357caa8e8db44c9"} device-1 | {"level":"info","message":"PATCH /devices/d544a2ce-f75c-409b-a577-3a16f67d2d11 200 50ms","method":"PATCH","requestID":"011c096fbda91dbcd357caa8e8db44c9","responseTime":50,"status":200,"url":"/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1M30.2icv1KyDh9EzEE1pii7otNgfLKCyo2jMGqF1wz4UiLE","level":"info","message":"auth send jwt","requestID":"ad73eb79b97956809d99bf99d42ed1dc"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ad73eb79b97956809d99bf99d42ed1dc","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"ad73eb79b97956809d99bf99d42ed1dc"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":943,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:53Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":943,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.721425,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:53Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ad73eb79b97956809d99bf99d42ed1dc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240553,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1M30.2icv1KyDh9EzEE1pii7otNgfLKCyo2jMGqF1wz4UiLE"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"ad73eb79b97956809d99bf99d42ed1dc","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"ad73eb79b97956809d99bf99d42ed1dc"} gateway-1 | {"time_local":"18/Jun/2025:09:55:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d544a2ce-f75c-409b-a577-3a16f67d2d11/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.038","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"ad73eb79b97956809d99bf99d42ed1dc"} device-1 | {"level":"info","message":"POST /devices/d544a2ce-f75c-409b-a577-3a16f67d2d11/websocket 200 34ms","method":"POST","requestID":"ad73eb79b97956809d99bf99d42ed1dc","responseTime":34,"status":200,"url":"/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11' connected"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"999d7a9a-799d-45fd-932e-760dc7c948c9\" in room \"http://localhost/rooms/a314c6d5-df57-46d8-8fe6-ea7150ea7951\"","requestID":"6965c4e0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"ffca07f1-e3c2-4f60-b1b9-cf4ca4227351\" in room \"http://localhost/rooms/a314c6d5-df57-46d8-8fe6-ea7150ea7951\"","requestID":"69663a10-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b2de867220c308a70ba1298ccce2444a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b2de867220c308a70ba1298ccce2444a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86/websocket 200 1ms","method":"OPTIONS","requestID":"b2de867220c308a70ba1298ccce2444a","responseTime":1,"status":200,"url":"/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:55:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b2de867220c308a70ba1298ccce2444a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NH0.AA0Za3RggFWFAwsVTxr9kALMod3t-wemPO_QksFM_ao","level":"info","message":"auth send jwt","requestID":"26e0a90d0d1f3053cccb978c9d95d25a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"26e0a90d0d1f3053cccb978c9d95d25a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"26e0a90d0d1f3053cccb978c9d95d25a"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":944,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:54Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":944,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.709751,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"26e0a90d0d1f3053cccb978c9d95d25a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240554,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NH0.AA0Za3RggFWFAwsVTxr9kALMod3t-wemPO_QksFM_ao"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"26e0a90d0d1f3053cccb978c9d95d25a","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"26e0a90d0d1f3053cccb978c9d95d25a"} gateway-1 | {"time_local":"18/Jun/2025:09:55:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.020","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"26e0a90d0d1f3053cccb978c9d95d25a"} device-1 | {"level":"info","message":"POST /devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86/websocket 200 17ms","method":"POST","requestID":"26e0a90d0d1f3053cccb978c9d95d25a","responseTime":17,"status":200,"url":"/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"7029616e3da4eab7b7908a1888d7348a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7029616e3da4eab7b7908a1888d7348a","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7029616e3da4eab7b7908a1888d7348a"} device-1 | {"level":"info","message":"OPTIONS /devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86? 200 0ms","method":"OPTIONS","requestID":"7029616e3da4eab7b7908a1888d7348a","responseTime":0,"status":200,"url":"/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NH0.AA0Za3RggFWFAwsVTxr9kALMod3t-wemPO_QksFM_ao","level":"info","message":"auth send jwt","requestID":"9bfe6e91a40a30676ed5075d9c132791"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9bfe6e91a40a30676ed5075d9c132791","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"9bfe6e91a40a30676ed5075d9c132791"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":945,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:54Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":945,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.273364,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9bfe6e91a40a30676ed5075d9c132791","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240554,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NH0.AA0Za3RggFWFAwsVTxr9kALMod3t-wemPO_QksFM_ao"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"9bfe6e91a40a30676ed5075d9c132791","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:52.587852211Z"}]},"request_id":"0bdffc39-37d3-4b7b-94f1-d423222eae9a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.0025313} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"9bfe6e91a40a30676ed5075d9c132791","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b3cbc59c-ddb9-434f-be61-cc1285f7a6fe","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.0068126} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"9bfe6e91a40a30676ed5075d9c132791","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:52.587852211Z"}]},"request_id":"9a73cb3a-ac4c-4078-ba7b-4f24c2d0a313","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.0413492} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"9bfe6e91a40a30676ed5075d9c132791","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"9bfe6e91a40a30676ed5075d9c132791"} device-1 | {"level":"info","message":"PATCH /devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86? 200 49ms","method":"PATCH","requestID":"9bfe6e91a40a30676ed5075d9c132791","responseTime":49,"status":200,"url":"/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.052","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9bfe6e91a40a30676ed5075d9c132791"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms","level":"info","message":"auth send jwt","requestID":"b7f417c7bfb56fcffb714479b0e33a42"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b7f417c7bfb56fcffb714479b0e33a42","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"b7f417c7bfb56fcffb714479b0e33a42"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":946,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":946,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.988447,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b7f417c7bfb56fcffb714479b0e33a42","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240555,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"b7f417c7bfb56fcffb714479b0e33a42","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:52.532484397Z"}]},"request_id":"613b54f4-f990-4a25-865c-f7c699dda3d2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.0613818} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"b7f417c7bfb56fcffb714479b0e33a42","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"b7f417c7bfb56fcffb714479b0e33a42"} gateway-1 | {"time_local":"18/Jun/2025:09:55:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d544a2ce-f75c-409b-a577-3a16f67d2d11? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b7f417c7bfb56fcffb714479b0e33a42"} device-1 | {"level":"info","message":"GET /devices/d544a2ce-f75c-409b-a577-3a16f67d2d11? 200 36ms","method":"GET","requestID":"b7f417c7bfb56fcffb714479b0e33a42","responseTime":36,"status":200,"url":"/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms","level":"info","message":"auth send jwt","requestID":"b301deb357c1717a7f0e8654f1b6864a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b301deb357c1717a7f0e8654f1b6864a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"b301deb357c1717a7f0e8654f1b6864a"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":947,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":947,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.69947,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b301deb357c1717a7f0e8654f1b6864a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240555,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b301deb357c1717a7f0e8654f1b6864a","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:52.587852211Z"}]},"request_id":"75149e5a-8068-4916-a66b-e1eec53b0ee6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.0996225} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b301deb357c1717a7f0e8654f1b6864a","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"b301deb357c1717a7f0e8654f1b6864a"} device-1 | {"level":"info","message":"GET /devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86? 200 9ms","method":"GET","requestID":"b301deb357c1717a7f0e8654f1b6864a","responseTime":9,"status":200,"url":"/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b301deb357c1717a7f0e8654f1b6864a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms","level":"info","message":"auth send jwt","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":948,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":948,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.662758,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240555,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6"},"level":"info","message":"Attempting to run experiment","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6"},"level":"info","message":"Attempting to book experiment","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6"},"level":"info","message":"Successfully booked experiment","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6d1f2360-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6d1f4a70-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":949,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":949,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.954632,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":950,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6d1f2360-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240555,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6d1f2360-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":950,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.817373,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6d1f4a70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240555,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6d1f4a70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:52.532484397Z"}]},"request_id":"48663b7b-406d-48a3-a216-182137622209","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.1863115} authorization-1 | {"level":"info","message":"POST /relations/query 200 23ms","method":"POST","requestID":"6d1f2360-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":23,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:52.587852211Z"}]},"request_id":"c1e9a43f-9df4-4527-abfc-0f6d01b01cf1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.188374} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6d1f2360-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6d1f4a70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"GET /devices/d544a2ce-f75c-409b-a577-3a16f67d2d11? 200 31ms","method":"GET","requestID":"6d1f2360-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6d1f4a70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86? 200 32ms","method":"GET","requestID":"6d1f4a70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6"},"level":"info","message":"Setting up experiment","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6"},"level":"info","message":"Successfully locked booking for experiment","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6"},"level":"info","message":"Successfully set up experiment","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6d2b7f70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6d2ba680-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6"},"level":"info","message":"Successfully running experiment","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":951,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":951,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.642696,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":952,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6d2b7f70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240555,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6d2b7f70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":952,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.721277,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6d2ba680-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240555,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6d2ba680-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:52.532484397Z"}]},"request_id":"b9c98dd8-1253-4a13-9f79-b5258948446a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.2482462} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6d2b7f70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:52.587852211Z"}]},"request_id":"6a1ce0e5-ff65-4661-9c31-1e5d93aa990c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.248741} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6d2ba680-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6d2b7f70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/d544a2ce-f75c-409b-a577-3a16f67d2d11? 200 13ms","method":"GET","requestID":"6d2b7f70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6d2ba680-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86? 200 13ms","method":"GET","requestID":"6d2ba680-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6d2df070-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F86119a77-ad1a-4dbb-9dda-1a37b6e420a6#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F86119a77-ad1a-4dbb-9dda-1a37b6e420a6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"bff3441f-df90-4893-b44a-6b6cf499bbbe","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.2816827} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"37e9aec6-ccfd-43b3-9e0e-7b344b4ced0c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.2820199} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":953,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 41ms","method":"POST","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00","responseTime":41,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"93fde37c-6804-4b97-844f-41446e74aea8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.2846282} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":953,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.760014,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6d2df070-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6d2df070-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6d2df070-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d544a2ce-f75c-409b-a577-3a16f67d2d11/signaling 200 34ms","method":"POST","requestID":"6d2df070-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6d33bcd0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00"} experiment-1 | {"level":"info","message":"POST /experiments? 201 187ms","method":"POST","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00","responseTime":187,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1292","request_time":"0.191","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":954,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c2ed666d-1598-43cb-b754-4061998690cf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.2984324} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":954,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.704102,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms","level":"info","message":"auth send jwt","requestID":"2aef016edf84a496b7d46d02d4a59230"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2aef016edf84a496b7d46d02d4a59230","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2aef016edf84a496b7d46d02d4a59230"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6d33bcd0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"6d33bcd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":955,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":955,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.647071,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6d33bcd0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86/signaling 200 9ms","method":"POST","requestID":"6d33bcd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2aef016edf84a496b7d46d02d4a59230","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240555,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2aef016edf84a496b7d46d02d4a59230","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6d393b10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6d396220-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:52.532484397Z"}]},"request_id":"cbcdc9d6-7b1e-40a4-aa11-8ed788d22526","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.3345034} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2aef016edf84a496b7d46d02d4a59230","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":956,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":956,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.903661,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":957,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":957,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.509276,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6d393b10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240555,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6d393b10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6d396220-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240555,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6d396220-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2aef016edf84a496b7d46d02d4a59230"} device-1 | {"level":"info","message":"GET /devices/d544a2ce-f75c-409b-a577-3a16f67d2d11? 200 41ms","method":"GET","requestID":"2aef016edf84a496b7d46d02d4a59230","responseTime":41,"status":200,"url":"/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d544a2ce-f75c-409b-a577-3a16f67d2d11? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2aef016edf84a496b7d46d02d4a59230"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms","level":"info","message":"auth send jwt","requestID":"ef52e74e7fd35a944f225579313baf2e"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ef52e74e7fd35a944f225579313baf2e","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:52.532484397Z"}]},"request_id":"0ea7cb6e-66d0-44d5-9350-6700f594b1d0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.345041} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"6d393b10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:52.587852211Z"}]},"request_id":"cf30cc22-bfeb-4c00-b597-189e91e19032","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.3462934} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ef52e74e7fd35a944f225579313baf2e"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"6d396220-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":958,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":958,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.079203,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6d393b10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ef52e74e7fd35a944f225579313baf2e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240555,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"ef52e74e7fd35a944f225579313baf2e","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"GET /devices/d544a2ce-f75c-409b-a577-3a16f67d2d11? 200 49ms","method":"GET","requestID":"6d393b10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":49,"status":200,"url":"/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6d396220-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86? 200 49ms","method":"GET","requestID":"6d396220-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":49,"status":200,"url":"/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6"},"level":"info","message":"Building connection plan","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"e90685a9-53b3-471e-913b-d2557ae5e57b"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"f8b7e595-a0e2-46a4-8822-779817db040e"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"9d6a240f-c0e4-4288-8930-365976bd5bb7"}]},"level":"info","message":"Built pairwise service configurations","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"6d415160-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"6d415160-4c2a-11f0-b702-8b8a85c3ad9a"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:52.587852211Z"}]},"request_id":"2b42c543-30c0-450a-bee0-b20dfde07004","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.3835588} forwarding-1 | {"level":"info","message":"POST /rooms 201 1ms","method":"POST","requestID":"6d415160-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":1,"status":201,"url":"/rooms"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ef52e74e7fd35a944f225579313baf2e","responseTime":3,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/5ad2d2ed-09d9-4439-ba1d-52ebc3ec2858?id=c6205ade-6899-4cf4-bbed-6c6f2067e811","ws://localhost/rooms/5ad2d2ed-09d9-4439-ba1d-52ebc3ec2858?id=4e5fc686-217d-4192-95b8-48614386cc3b"]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"6d41eda0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ef52e74e7fd35a944f225579313baf2e"} device-1 | {"level":"info","message":"GET /devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86? 200 41ms","method":"GET","requestID":"ef52e74e7fd35a944f225579313baf2e","responseTime":41,"status":200,"url":"/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ef52e74e7fd35a944f225579313baf2e"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":959,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":959,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.83274,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6d41eda0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240555,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6d41eda0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"7abdccc4-65a6-48e6-9cd6-2b3fcad0e01e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.3962843} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"83d0d237-6303-4093-864e-92bc950f27c9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.3965614} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"6d41eda0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"6d41eda0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"6d41eda0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/6b9d0c8d-9690-4d56-ac4f-7d6b317057fc'","requestID":"6d41eda0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/6b9d0c8d-9690-4d56-ac4f-7d6b317057fc'","requestID":"6d41eda0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"6d41eda0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 46ms","method":"POST","requestID":"6d41eda0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":46,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"6d41eda0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/6b9d0c8d-9690-4d56-ac4f-7d6b317057fc' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6b9d0c8d-9690-4d56-ac4f-7d6b317057fc","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"6d4a2b00-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"c6205ade-6899-4cf4-bbed-6c6f2067e811\" in room \"http://localhost/rooms/5ad2d2ed-09d9-4439-ba1d-52ebc3ec2858\"","requestID":"6d4a2b00-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"6d4a2b00-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"1ad93a977aeb40d9553346aef75fb879","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1ad93a977aeb40d9553346aef75fb879","responseTime":1,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"6d4a7920-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4e5fc686-217d-4192-95b8-48614386cc3b\" in room \"http://localhost/rooms/5ad2d2ed-09d9-4439-ba1d-52ebc3ec2858\"","requestID":"6d4a7920-4c2a-11f0-b702-8b8a85c3ad9a"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/6b9d0c8d-9690-4d56-ac4f-7d6b317057fc"}}},"level":"info","message":"received a callback","requestID":"1ad93a977aeb40d9553346aef75fb879"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"6d4a7920-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"4e5fc686-217d-4192-95b8-48614386cc3b\" in room \"http://localhost/rooms/5ad2d2ed-09d9-4439-ba1d-52ebc3ec2858\"","requestID":"6d4a7920-4c2a-11f0-b702-8b8a85c3ad9a"} device-1 | {"data":{"peerconnection":"6b9d0c8d-9690-4d56-ac4f-7d6b317057fc","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 35ms","method":"POST","requestID":"1ad93a977aeb40d9553346aef75fb879","responseTime":35,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch","requestID":"1ad93a977aeb40d9553346aef75fb879"} device-1 | {"data":{"peerconnection":"6b9d0c8d-9690-4d56-ac4f-7d6b317057fc","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"c38469d94ce3dfb783cf4c7c1fe7ef00"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6d517e00-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":960,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3a2b3ec0-d1b5-4992-8a69-4a4d2a668072","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.492653} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":960,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.465376,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6d517e00-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6d517e00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/6b9d0c8d-9690-4d56-ac4f-7d6b317057fc' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6b9d0c8d-9690-4d56-ac4f-7d6b317057fc","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"6ad35b07a61bb4b4bb8737ffa904ebe3","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6d517e00-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6ad35b07a61bb4b4bb8737ffa904ebe3","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/d544a2ce-f75c-409b-a577-3a16f67d2d11/signaling 200 34ms","method":"POST","requestID":"6d517e00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6d56fc40-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/6b9d0c8d-9690-4d56-ac4f-7d6b317057fc"}}},"level":"info","message":"received a callback","requestID":"6ad35b07a61bb4b4bb8737ffa904ebe3"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":961,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"af74f4c6-e001-4741-b591-9c01bf612de3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.5287962} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":961,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.605464,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6d56fc40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6d56fc40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"6d57e6a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":962,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6b9d0c8d-9690-4d56-ac4f-7d6b317057fc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b65b7e31-1a11-4281-8374-1257f58c65c5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.5341127} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":962,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.257432,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6d56fc40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86/signaling 200 11ms","method":"POST","requestID":"6d56fc40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/6b9d0c8d-9690-4d56-ac4f-7d6b317057fc","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6d57e6a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/6b9d0c8d-9690-4d56-ac4f-7d6b317057fc","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6d57e6a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"6d57e6a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/6b9d0c8d-9690-4d56-ac4f-7d6b317057fc 200 7ms","method":"GET","requestID":"6d57e6a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/peerconnections/6b9d0c8d-9690-4d56-ac4f-7d6b317057fc"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms","level":"info","message":"auth send jwt","requestID":"b7234fcf3a003bdb953c76f95f8a1259"} authentication-1 | {"level":"info","message":"GET /auth 200 22ms","method":"GET","requestID":"b7234fcf3a003bdb953c76f95f8a1259","responseTime":22,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6","requestID":"b7234fcf3a003bdb953c76f95f8a1259"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":963,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":963,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.668871,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b7234fcf3a003bdb953c76f95f8a1259","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240555,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"b7234fcf3a003bdb953c76f95f8a1259","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 49ms","method":"POST","requestID":"6ad35b07a61bb4b4bb8737ffa904ebe3","responseTime":49,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch","requestID":"6ad35b07a61bb4b4bb8737ffa904ebe3"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6d5ec470-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":964,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6","requestID":"b7234fcf3a003bdb953c76f95f8a1259"} gateway-1 | {"time_local":"18/Jun/2025:09:55:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6 HTTP/1.1","status": "200","body_bytes_sent":"1365","request_time":"0.033","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b7234fcf3a003bdb953c76f95f8a1259"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"08b4e22a-f933-4d3e-99de-2553e30c7917","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.5795665} experiment-1 | {"level":"info","message":"GET /experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6 200 9ms","method":"GET","requestID":"b7234fcf3a003bdb953c76f95f8a1259","responseTime":9,"status":200,"url":"/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":964,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.387177,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6d5ec470-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6d5ec470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6d5ec470-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms","level":"info","message":"auth send jwt","requestID":"7c7fd9d41d731e2dc071482f82dcfa60"} device-1 | {"level":"info","message":"POST /devices/d544a2ce-f75c-409b-a577-3a16f67d2d11/signaling 200 8ms","method":"POST","requestID":"6d5ec470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7c7fd9d41d731e2dc071482f82dcfa60","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6d604b10-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6","requestID":"7c7fd9d41d731e2dc071482f82dcfa60"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":965,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":966,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":966,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.744959,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7c7fd9d41d731e2dc071482f82dcfa60","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240555,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7c7fd9d41d731e2dc071482f82dcfa60","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c2af857a-1d8e-4723-a2b6-0ae3cff4dd07","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.5894163} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":965,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.242705,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6d604b10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6d604b10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6d604b10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86/signaling 200 8ms","method":"POST","requestID":"6d604b10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6"},"level":"info","message":"Attempting to finish experiment","requestID":"7c7fd9d41d731e2dc071482f82dcfa60"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"6d61d1b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":967,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":967,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.258009,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/6b9d0c8d-9690-4d56-ac4f-7d6b317057fc","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6d61d1b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/6b9d0c8d-9690-4d56-ac4f-7d6b317057fc","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240555,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6d61d1b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:55:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/5ad2d2ed-09d9-4439-ba1d-52ebc3ec2858?id=c6205ade-6899-4cf4-bbed-6c6f2067e811 HTTP/1.1","status": "101","body_bytes_sent":"0","request_time":"0.190","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"2f774a21a5cca6b2b8ce820d40315bb3"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"c6205ade-6899-4cf4-bbed-6c6f2067e811\" in room \"http://localhost/rooms/5ad2d2ed-09d9-4439-ba1d-52ebc3ec2858\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"c6205ade-6899-4cf4-bbed-6c6f2067e811\" from room \"http://localhost/rooms/5ad2d2ed-09d9-4439-ba1d-52ebc3ec2858\", code: 1006, reason: "} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/6b9d0c8d-9690-4d56-ac4f-7d6b317057fc","device":"f0407d6b-2c5e-4758-9eb5-7864cfb4be86","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} gateway-1 | {"time_local":"18/Jun/2025:09:55:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/5ad2d2ed-09d9-4439-ba1d-52ebc3ec2858?id=4e5fc686-217d-4192-95b8-48614386cc3b HTTP/1.1","status": "101","body_bytes_sent":"460","request_time":"0.188","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1f2fd01b70774487eaaa154dcdae02c8"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/6b9d0c8d-9690-4d56-ac4f-7d6b317057fc' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/6b9d0c8d-9690-4d56-ac4f-7d6b317057fc' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6b9d0c8d-9690-4d56-ac4f-7d6b317057fc","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"4e5fc686-217d-4192-95b8-48614386cc3b\" in room \"http://localhost/rooms/5ad2d2ed-09d9-4439-ba1d-52ebc3ec2858\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"4e5fc686-217d-4192-95b8-48614386cc3b\" from room \"http://localhost/rooms/5ad2d2ed-09d9-4439-ba1d-52ebc3ec2858\", code: 1005, reason: "} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8fd14844defb44911515acb9b353a9cf","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8fd14844defb44911515acb9b353a9cf","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6b9d0c8d-9690-4d56-ac4f-7d6b317057fc': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6b9d0c8d-9690-4d56-ac4f-7d6b317057fc","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"a7905377-4f89-4a69-be32-0bf34f4fb746","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.6344311} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"310fd1ad-b380-49cd-9776-350662107a4d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.6347587} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"02fbb5bb115bb2bc104e8bf192b0241c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"02fbb5bb115bb2bc104e8bf192b0241c","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/6b9d0c8d-9690-4d56-ac4f-7d6b317057fc"}}},"level":"info","message":"received a callback","requestID":"8fd14844defb44911515acb9b353a9cf"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"6d61d1b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/6b9d0c8d-9690-4d56-ac4f-7d6b317057fc"}}},"level":"info","message":"received a callback","requestID":"02fbb5bb115bb2bc104e8bf192b0241c"} device-1 | {"data":{"peerconnection":"6b9d0c8d-9690-4d56-ac4f-7d6b317057fc","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"6d61d1b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/6b9d0c8d-9690-4d56-ac4f-7d6b317057fc 204 79ms","method":"DELETE","requestID":"6d61d1b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":79,"status":204,"url":"/peerconnections/6b9d0c8d-9690-4d56-ac4f-7d6b317057fc"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6"},"level":"info","message":"Successfully finished experiment","requestID":"7c7fd9d41d731e2dc071482f82dcfa60"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6d6fdb70-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":968,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd544a2ce-f75c-409b-a577-3a16f67d2d11","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5d419a3c-0b85-4e83-9fb8-0d2a9067a3de","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.716622} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":968,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.496173,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6d6fdb70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6d6fdb70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6d6fdb70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d544a2ce-f75c-409b-a577-3a16f67d2d11/signaling 200 33ms","method":"POST","requestID":"6d6fdb70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11/signaling"} forwarding-1 | {"level":"info","message":"Participant \"6b898132-c01e-4585-88a0-449b01ba7dc0\" in room \"http://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8\" did not answer hearbeat check, closing connection","requestID":"677c1d50-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"b0fcd2fa-01f4-4f6e-b862-b9d73d5969c4\" in room \"http://localhost/rooms/a9d33823-625e-4b67-af7b-5f87118096b8\" did not answer hearbeat check, closing connection","requestID":"677c6b70-4c2a-11f0-b702-8b8a85c3ad9a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6d7532a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":969,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F86119a77-ad1a-4dbb-9dda-1a37b6e420a6': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F86119a77-ad1a-4dbb-9dda-1a37b6e420a6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"93920de2-d8ec-47a3-9df4-ef0e4637074e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.7262855} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff0407d6b-2c5e-4758-9eb5-7864cfb4be86","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ce2ac1a5-01a9-40c1-b7f4-63e5032e54e4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.726423} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e77d322c-42c5-43e4-8080-c9b78be50bbe","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.7265623} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":969,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.267129,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6d7532a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6d7532a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"level":"info","message":"POST /relations/update 200 43ms","method":"POST","requestID":"7c7fd9d41d731e2dc071482f82dcfa60","responseTime":43,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6d7532a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86/signaling 200 9ms","method":"POST","requestID":"6d7532a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6","requestID":"7c7fd9d41d731e2dc071482f82dcfa60"} gateway-1 | {"time_local":"18/Jun/2025:09:55:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.242","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7c7fd9d41d731e2dc071482f82dcfa60"} experiment-1 | {"level":"info","message":"DELETE /experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6 204 238ms","method":"DELETE","requestID":"7c7fd9d41d731e2dc071482f82dcfa60","responseTime":238,"status":204,"url":"/experiments/86119a77-ad1a-4dbb-9dda-1a37b6e420a6"} gateway-1 | {"time_local":"18/Jun/2025:09:55:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1684","request_time":"2.212","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"b78ff33ba82758dd1477233737faf7e3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms","level":"info","message":"auth send jwt","requestID":"f5fe9157e8726f2026ff39a0d347de77"} gateway-1 | {"time_local":"18/Jun/2025:09:55:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.194","http_referrer":"","http_user_agent":"node-fetch","requestID":"8fd14844defb44911515acb9b353a9cf"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 191ms","method":"POST","requestID":"8fd14844defb44911515acb9b353a9cf","responseTime":191,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f5fe9157e8726f2026ff39a0d347de77","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 191ms","method":"POST","requestID":"02fbb5bb115bb2bc104e8bf192b0241c","responseTime":191,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.195","http_referrer":"","http_user_agent":"node-fetch","requestID":"02fbb5bb115bb2bc104e8bf192b0241c"} device-1 | {"level":"info","message":"postDevices called","requestID":"f5fe9157e8726f2026ff39a0d347de77"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d544a2ce-f75c-409b-a577-3a16f67d2d11' closed"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":970,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":970,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.726573,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f5fe9157e8726f2026ff39a0d347de77","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240555,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","method":"POST","requestID":"f5fe9157e8726f2026ff39a0d347de77","responseTime":8,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:55:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2005","request_time":"0.877","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3136a4e662c890cbf1eb730615c8dad0"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/f0407d6b-2c5e-4758-9eb5-7864cfb4be86' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1ea9d6e0-7e5c-43d3-bcad-f2acca9c4630","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.8651128} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"f5fe9157e8726f2026ff39a0d347de77","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c480bbfd-4808-426f-a1fe-f6bc294d08ea","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.8694296} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"f5fe9157e8726f2026ff39a0d347de77","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"f39758bc-ad51-4a70-9274-f80b83f33369","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.8811064} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6df000a5-3b76-4d1c-adb0-a3d286ac9854","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.8813431} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"f5fe9157e8726f2026ff39a0d347de77","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:55.881069537Z"}]},"request_id":"dbe5b162-b459-4413-9825-9d976d673452","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.885222} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"f5fe9157e8726f2026ff39a0d347de77","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"f5fe9157e8726f2026ff39a0d347de77"} gateway-1 | {"time_local":"18/Jun/2025:09:55:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.063","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f5fe9157e8726f2026ff39a0d347de77"} device-1 | {"level":"info","message":"POST /devices? 201 57ms","method":"POST","requestID":"f5fe9157e8726f2026ff39a0d347de77","responseTime":57,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms","level":"info","message":"auth send jwt","requestID":"c06cfb4403d7de7634dfc0e30c48d628"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c06cfb4403d7de7634dfc0e30c48d628","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"c06cfb4403d7de7634dfc0e30c48d628"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":971,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":971,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.687475,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c06cfb4403d7de7634dfc0e30c48d628","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240555,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1NX0.n13nA4OO1xGzrSu15ZpEYMaBQD-zMhh-SDVe7JRIxms"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c06cfb4403d7de7634dfc0e30c48d628","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"8931c4b6-8ba1-4715-9f23-f6ec2113eb51","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.9072516} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c06cfb4403d7de7634dfc0e30c48d628","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d4c7c06c-0ecc-4738-a8e3-98f7076f61b3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.9132009} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","method":"POST","requestID":"c06cfb4403d7de7634dfc0e30c48d628","responseTime":9,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"1908e20e-b927-4343-b583-3b3dc799142f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.923795} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"db1061d3-6e16-4a13-a5fd-7d602cd5acc4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.9238698} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"c06cfb4403d7de7634dfc0e30c48d628","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:55.923764994Z"}]},"request_id":"66042538-0e89-4e32-bef4-8846c52b19cb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240555.9276342} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c06cfb4403d7de7634dfc0e30c48d628","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"c06cfb4403d7de7634dfc0e30c48d628"} device-1 | {"level":"info","message":"POST /devices? 201 37ms","method":"POST","requestID":"c06cfb4403d7de7634dfc0e30c48d628","responseTime":37,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c06cfb4403d7de7634dfc0e30c48d628"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1Nn0.dH6xSoywU-_YJXnkJHB6BwuAGMm-w-Hkx5Vs-iDIq1M","level":"info","message":"auth send jwt","requestID":"b0ce7a4b16819d1719b2628feefb93b5"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b0ce7a4b16819d1719b2628feefb93b5","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"b0ce7a4b16819d1719b2628feefb93b5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":972,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:56Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":972,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.681576,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:56Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b0ce7a4b16819d1719b2628feefb93b5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240556,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1Nn0.dH6xSoywU-_YJXnkJHB6BwuAGMm-w-Hkx5Vs-iDIq1M"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b0ce7a4b16819d1719b2628feefb93b5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:55.881069537Z"}]},"request_id":"b3d4043a-1623-4a31-908b-9d521f539798","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240556.831991} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b0ce7a4b16819d1719b2628feefb93b5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"79e82d75-e989-46e3-b2d6-86d5063654e0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240556.83633} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"b0ce7a4b16819d1719b2628feefb93b5","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:55.881069537Z"}]},"request_id":"7b44913d-eef4-49b2-878e-0530ce3c93b5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240556.869689} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b0ce7a4b16819d1719b2628feefb93b5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"b0ce7a4b16819d1719b2628feefb93b5"} device-1 | {"level":"info","message":"PATCH /devices/be5a149f-a444-4dac-bf53-706c2ce5d49c 200 48ms","method":"PATCH","requestID":"b0ce7a4b16819d1719b2628feefb93b5","responseTime":48,"status":200,"url":"/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c"} gateway-1 | {"time_local":"18/Jun/2025:09:55:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/be5a149f-a444-4dac-bf53-706c2ce5d49c HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.052","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"b0ce7a4b16819d1719b2628feefb93b5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1Nn0.dH6xSoywU-_YJXnkJHB6BwuAGMm-w-Hkx5Vs-iDIq1M","level":"info","message":"auth send jwt","requestID":"1add278a8557af9ee3749ac3a3ce17e1"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1add278a8557af9ee3749ac3a3ce17e1","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"1add278a8557af9ee3749ac3a3ce17e1"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":973,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:56Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":973,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.760725,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:56Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"1add278a8557af9ee3749ac3a3ce17e1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240556,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1Nn0.dH6xSoywU-_YJXnkJHB6BwuAGMm-w-Hkx5Vs-iDIq1M"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1add278a8557af9ee3749ac3a3ce17e1","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"1add278a8557af9ee3749ac3a3ce17e1"} device-1 | {"level":"info","message":"POST /devices/be5a149f-a444-4dac-bf53-706c2ce5d49c/websocket 200 38ms","method":"POST","requestID":"1add278a8557af9ee3749ac3a3ce17e1","responseTime":38,"status":200,"url":"/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:55:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/be5a149f-a444-4dac-bf53-706c2ce5d49c/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.042","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"1add278a8557af9ee3749ac3a3ce17e1"} device-1 | {"level":"info","message":"device 'http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c' connected"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"60bc5aef-0115-41f5-b776-906782ba4a40\" in room \"http://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632\"","requestID":"6b5008b0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"44d29ba7-d0ec-419e-a0b5-c09a181414ae\" in room \"http://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632\"","requestID":"6b502fc0-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"45cd4079936b816a7929eddce02027c9","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"45cd4079936b816a7929eddce02027c9","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:55:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"45cd4079936b816a7929eddce02027c9"} device-1 | {"level":"info","message":"OPTIONS /devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca/websocket 200 1ms","method":"OPTIONS","requestID":"45cd4079936b816a7929eddce02027c9","responseTime":1,"status":200,"url":"/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU","level":"info","message":"auth send jwt","requestID":"e2a0c7d44b0330e443e40e2bfd92b49d"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e2a0c7d44b0330e443e40e2bfd92b49d","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"e2a0c7d44b0330e443e40e2bfd92b49d"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":974,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":974,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.121703,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e2a0c7d44b0330e443e40e2bfd92b49d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240558,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"e2a0c7d44b0330e443e40e2bfd92b49d","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"e2a0c7d44b0330e443e40e2bfd92b49d"} gateway-1 | {"time_local":"18/Jun/2025:09:55:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.027","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e2a0c7d44b0330e443e40e2bfd92b49d"} device-1 | {"level":"info","message":"POST /devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca/websocket 200 20ms","method":"POST","requestID":"e2a0c7d44b0330e443e40e2bfd92b49d","responseTime":20,"status":200,"url":"/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"bb091d07f6409d8a65f7d6be9dba0ae6","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"bb091d07f6409d8a65f7d6be9dba0ae6","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca? 200 1ms","method":"OPTIONS","requestID":"bb091d07f6409d8a65f7d6be9dba0ae6","responseTime":1,"status":200,"url":"/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"bb091d07f6409d8a65f7d6be9dba0ae6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU","level":"info","message":"auth send jwt","requestID":"6257f264e126e64faf30be6f5a669a14"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6257f264e126e64faf30be6f5a669a14","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"6257f264e126e64faf30be6f5a669a14"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":975,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":975,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.64233,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6257f264e126e64faf30be6f5a669a14","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240558,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6257f264e126e64faf30be6f5a669a14","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:55.923764994Z"}]},"request_id":"4ba94171-fed7-475b-a3c7-7f96f93dc4df","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.3153062} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6257f264e126e64faf30be6f5a669a14","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5089b468-1ace-4cc1-ad91-f4131ed05bf6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.3190622} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"6257f264e126e64faf30be6f5a669a14","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:55.923764994Z"}]},"request_id":"2e1524f9-b882-46d2-8e39-b86d3c8c7163","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.32801} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"6257f264e126e64faf30be6f5a669a14","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"6257f264e126e64faf30be6f5a669a14"} device-1 | {"level":"info","message":"PATCH /devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca? 200 47ms","method":"PATCH","requestID":"6257f264e126e64faf30be6f5a669a14","responseTime":47,"status":200,"url":"/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.051","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6257f264e126e64faf30be6f5a669a14"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU","level":"info","message":"auth send jwt","requestID":"d7053082663a5591be8737b30aa59628"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d7053082663a5591be8737b30aa59628","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d7053082663a5591be8737b30aa59628"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":976,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":976,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.92582,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d7053082663a5591be8737b30aa59628","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240558,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"d7053082663a5591be8737b30aa59628","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:55.881069537Z"}]},"request_id":"51c0cd0b-200f-4eda-a694-5faf248d0dcd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.370284} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d7053082663a5591be8737b30aa59628","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d7053082663a5591be8737b30aa59628"} gateway-1 | {"time_local":"18/Jun/2025:09:55:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/be5a149f-a444-4dac-bf53-706c2ce5d49c? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d7053082663a5591be8737b30aa59628"} device-1 | {"level":"info","message":"GET /devices/be5a149f-a444-4dac-bf53-706c2ce5d49c? 200 12ms","method":"GET","requestID":"d7053082663a5591be8737b30aa59628","responseTime":12,"status":200,"url":"/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU","level":"info","message":"auth send jwt","requestID":"da1f14f1764ec429b3a557ee1376b083"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"da1f14f1764ec429b3a557ee1376b083","responseTime":26,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"da1f14f1764ec429b3a557ee1376b083"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":977,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":977,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.885067,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"da1f14f1764ec429b3a557ee1376b083","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240558,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"da1f14f1764ec429b3a557ee1376b083","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:55.923764994Z"}]},"request_id":"c71a15e5-c3fe-4bc9-a5be-7a63b02d5547","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.4094865} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"da1f14f1764ec429b3a557ee1376b083","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"da1f14f1764ec429b3a557ee1376b083"} device-1 | {"level":"info","message":"GET /devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca? 200 10ms","method":"GET","requestID":"da1f14f1764ec429b3a557ee1376b083","responseTime":10,"status":200,"url":"/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca?"} gateway-1 | {"time_local":"18/Jun/2025:09:55:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"da1f14f1764ec429b3a557ee1376b083"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU","level":"info","message":"auth send jwt","requestID":"0cf6d68f479cad08caf04067fad79205"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0cf6d68f479cad08caf04067fad79205","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"0cf6d68f479cad08caf04067fad79205"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":978,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":978,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.801236,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0cf6d68f479cad08caf04067fad79205","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240558,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0cf6d68f479cad08caf04067fad79205","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2"},"level":"info","message":"Attempting to run experiment","requestID":"0cf6d68f479cad08caf04067fad79205"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2"},"level":"info","message":"Attempting to book experiment","requestID":"0cf6d68f479cad08caf04067fad79205"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2"},"level":"info","message":"Successfully booked experiment","requestID":"0cf6d68f479cad08caf04067fad79205"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6f1ca110-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6f1cc820-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":979,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":979,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.60447,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":980,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6f1ca110-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240558,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6f1ca110-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":980,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.634573,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6f1cc820-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240558,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6f1cc820-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:55.881069537Z"}]},"request_id":"d7445d31-cdb4-44dd-b87f-1f4bbf783a29","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.5039885} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6f1ca110-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:55.923764994Z"}]},"request_id":"81388fc6-8afb-4771-af2d-69317eb23448","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.504603} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6f1cc820-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6f1ca110-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/be5a149f-a444-4dac-bf53-706c2ce5d49c? 200 11ms","method":"GET","requestID":"6f1ca110-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6f1cc820-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca? 200 11ms","method":"GET","requestID":"6f1cc820-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2"},"level":"info","message":"Setting up experiment","requestID":"0cf6d68f479cad08caf04067fad79205"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"0cf6d68f479cad08caf04067fad79205"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"0cf6d68f479cad08caf04067fad79205"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2"},"level":"info","message":"Successfully locked booking for experiment","requestID":"0cf6d68f479cad08caf04067fad79205"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2"},"level":"info","message":"Successfully set up experiment","requestID":"0cf6d68f479cad08caf04067fad79205"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6f257ab0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6f25a1c0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2"},"level":"info","message":"Successfully running experiment","requestID":"0cf6d68f479cad08caf04067fad79205"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":981,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":982,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":981,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.895467,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":982,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.255236,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6f257ab0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240558,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6f257ab0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6f25a1c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240558,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6f25a1c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:55.881069537Z"}]},"request_id":"a6a6a8f5-149b-4cd0-945d-7a51fe879b95","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.5640526} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6f257ab0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:55.923764994Z"}]},"request_id":"71eb2209-b8d2-48c8-8154-3f83a5cf96c8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.564807} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6f25a1c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6f257ab0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F530c8bcc-170e-4cda-a1bc-da46b477a3f2#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F530c8bcc-170e-4cda-a1bc-da46b477a3f2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"e32c3365-baa9-4bb0-9900-c8e021d93b69","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.568637} device-1 | {"level":"info","message":"GET /devices/be5a149f-a444-4dac-bf53-706c2ce5d49c? 200 38ms","method":"GET","requestID":"6f257ab0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":38,"status":200,"url":"/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bc01cf9a-803d-4c60-b2d6-667abcbfd52a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.5928583} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6f25a1c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca? 200 37ms","method":"GET","requestID":"6f25a1c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"0cf6d68f479cad08caf04067fad79205","responseTime":35,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6f2bbc40-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":983,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"17589d33-209e-4f20-8d0c-88e6cb2239b6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.5998166} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":983,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.414858,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"0cf6d68f479cad08caf04067fad79205"} gateway-1 | {"time_local":"18/Jun/2025:09:55:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1292","request_time":"0.188","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0cf6d68f479cad08caf04067fad79205"} experiment-1 | {"level":"info","message":"POST /experiments? 201 184ms","method":"POST","requestID":"0cf6d68f479cad08caf04067fad79205","responseTime":184,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6f2bbc40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6f2bbc40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6f2bbc40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/be5a149f-a444-4dac-bf53-706c2ce5d49c/signaling 200 8ms","method":"POST","requestID":"6f2bbc40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU","level":"info","message":"auth send jwt","requestID":"e26f1a0789ecf08c8599a0c8bcf3715e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e26f1a0789ecf08c8599a0c8bcf3715e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"e26f1a0789ecf08c8599a0c8bcf3715e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6f2d42e0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":984,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":984,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.615827,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":985,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e26f1a0789ecf08c8599a0c8bcf3715e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240558,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e26f1a0789ecf08c8599a0c8bcf3715e","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0ba9c65f-56c1-4fc6-aa1b-04ab09bddd13","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.610255} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":985,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.744662,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6f2d42e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6f2d42e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:55.881069537Z"}]},"request_id":"83091057-7733-4aaa-8da9-68bfaf16b8ec","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.6122074} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e26f1a0789ecf08c8599a0c8bcf3715e","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6f2d42e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca/signaling 200 10ms","method":"POST","requestID":"6f2d42e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"e26f1a0789ecf08c8599a0c8bcf3715e"} gateway-1 | {"time_local":"18/Jun/2025:09:55:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/be5a149f-a444-4dac-bf53-706c2ce5d49c? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e26f1a0789ecf08c8599a0c8bcf3715e"} device-1 | {"level":"info","message":"GET /devices/be5a149f-a444-4dac-bf53-706c2ce5d49c? 200 35ms","method":"GET","requestID":"e26f1a0789ecf08c8599a0c8bcf3715e","responseTime":35,"status":200,"url":"/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"0cf6d68f479cad08caf04067fad79205"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6f32c120-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6f32e830-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU","level":"info","message":"auth send jwt","requestID":"7c8f3ec8e56866c1d40bb69a4a267bba"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7c8f3ec8e56866c1d40bb69a4a267bba","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7c8f3ec8e56866c1d40bb69a4a267bba"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Received request.","req_id":986,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"client_addr":"127.0.0.1:55068","level":"info","msg":"Sent response.","req_id":986,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.895088,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":987,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6f32c120-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240558,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6f32c120-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":987,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.531229,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6f32e830-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240558,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6f32e830-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":988,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":988,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.730651,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7c8f3ec8e56866c1d40bb69a4a267bba","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240558,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"7c8f3ec8e56866c1d40bb69a4a267bba","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:55.923764994Z"}]},"request_id":"e6535b04-38dc-4e7e-89a7-92f929e58a53","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.6522408} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:55.881069537Z"}]},"request_id":"dff02fe1-741c-49e9-aa24-7463e76b5bd8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.652901} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"6f32e830-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6f32c120-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:55.923764994Z"}]},"request_id":"103a1f54-d55d-4f5d-9c89-961bd856100b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.6561975} authorization-1 | {"level":"info","message":"POST /relations/query 200 1ms","method":"POST","requestID":"7c8f3ec8e56866c1d40bb69a4a267bba","responseTime":1,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6f32e830-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca? 200 14ms","method":"GET","requestID":"6f32e830-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6f32c120-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/be5a149f-a444-4dac-bf53-706c2ce5d49c? 200 17ms","method":"GET","requestID":"6f32c120-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":17,"status":200,"url":"/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7c8f3ec8e56866c1d40bb69a4a267bba"} gateway-1 | {"time_local":"18/Jun/2025:09:55:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7c8f3ec8e56866c1d40bb69a4a267bba"} device-1 | {"level":"info","message":"GET /devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca? 200 15ms","method":"GET","requestID":"7c8f3ec8e56866c1d40bb69a4a267bba","responseTime":15,"status":200,"url":"/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2"},"level":"info","message":"Building connection plan","requestID":"0cf6d68f479cad08caf04067fad79205"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"82282036-807f-434f-b3c0-cd0f768551ca"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"0bdb5f79-77fe-4423-aa34-e00ae874d338"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"1d164e44-f294-4527-832a-76661adfefd0"}]},"level":"info","message":"Built pairwise service configurations","requestID":"0cf6d68f479cad08caf04067fad79205"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"6f35ce60-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"6f35ce60-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"POST /rooms 201 0ms","method":"POST","requestID":"6f35ce60-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":0,"status":201,"url":"/rooms"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/0bce82a2-dc24-4b78-b7d3-c9dd3d2771d8?id=8ca98ca7-28ae-459b-b18b-cd39b8943666","ws://localhost/rooms/0bce82a2-dc24-4b78-b7d3-c9dd3d2771d8?id=f625492b-d45b-4f9c-948c-8183139cf407"]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"0cf6d68f479cad08caf04067fad79205"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"6f39c600-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":989,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":989,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.703159,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6f39c600-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240558,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6f39c600-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"42f60b18-b560-4bc5-b6ec-b62cdcac2248","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.6983833} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"afe2aa9e-7659-40b0-93da-1cc5a202af4c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.6986961} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"6f39c600-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"6f39c600-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"6f39c600-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/98ea6197-16b4-48f2-816c-c938b5550240'","requestID":"6f39c600-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/98ea6197-16b4-48f2-816c-c938b5550240'","requestID":"6f39c600-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"6f39c600-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 23ms","method":"POST","requestID":"6f39c600-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":23,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"6f39c600-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/98ea6197-16b4-48f2-816c-c938b5550240' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"98ea6197-16b4-48f2-816c-c938b5550240","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"6f427890-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"f625492b-d45b-4f9c-948c-8183139cf407\" in room \"http://localhost/rooms/0bce82a2-dc24-4b78-b7d3-c9dd3d2771d8\"","requestID":"6f427890-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"6f427890-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"6f429fa0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"8ca98ca7-28ae-459b-b18b-cd39b8943666\" in room \"http://localhost/rooms/0bce82a2-dc24-4b78-b7d3-c9dd3d2771d8\"","requestID":"6f429fa0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"6f429fa0-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"cbeb1c78fb004b642e0f51fc842fdd73","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"8ca98ca7-28ae-459b-b18b-cd39b8943666\" in room \"http://localhost/rooms/0bce82a2-dc24-4b78-b7d3-c9dd3d2771d8\"","requestID":"6f429fa0-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"cbeb1c78fb004b642e0f51fc842fdd73","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/98ea6197-16b4-48f2-816c-c938b5550240"}}},"level":"info","message":"received a callback","requestID":"cbeb1c78fb004b642e0f51fc842fdd73"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"8ca98ca7-28ae-459b-b18b-cd39b8943666\" in room \"http://localhost/rooms/0bce82a2-dc24-4b78-b7d3-c9dd3d2771d8\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"8ca98ca7-28ae-459b-b18b-cd39b8943666\" in room \"http://localhost/rooms/0bce82a2-dc24-4b78-b7d3-c9dd3d2771d8\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"8ca98ca7-28ae-459b-b18b-cd39b8943666\" in room \"http://localhost/rooms/0bce82a2-dc24-4b78-b7d3-c9dd3d2771d8\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"8ca98ca7-28ae-459b-b18b-cd39b8943666\" in room \"http://localhost/rooms/0bce82a2-dc24-4b78-b7d3-c9dd3d2771d8\""} device-1 | {"data":{"peerconnection":"98ea6197-16b4-48f2-816c-c938b5550240","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 10ms","method":"POST","requestID":"cbeb1c78fb004b642e0f51fc842fdd73","responseTime":10,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch","requestID":"cbeb1c78fb004b642e0f51fc842fdd73"} device-1 | {"data":{"peerconnection":"98ea6197-16b4-48f2-816c-c938b5550240","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"0cf6d68f479cad08caf04067fad79205"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6f49cb90-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":990,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"212a8043-eff6-4661-9650-bf2e9f6552dc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.7979712} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":990,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.41787,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6f49cb90-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"6f49cb90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/98ea6197-16b4-48f2-816c-c938b5550240' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"98ea6197-16b4-48f2-816c-c938b5550240","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6f49cb90-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/be5a149f-a444-4dac-bf53-706c2ce5d49c/signaling 200 10ms","method":"POST","requestID":"6f49cb90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c/signaling"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d809c3f045987c8da1f48b44faf7f2e4","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d809c3f045987c8da1f48b44faf7f2e4","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6f4ba050-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/98ea6197-16b4-48f2-816c-c938b5550240"}}},"level":"info","message":"received a callback","requestID":"d809c3f045987c8da1f48b44faf7f2e4"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":991,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"18999b00-ff4a-442c-99f9-9a8b856c331a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.8343573} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":991,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.879183,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6f4ba050-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"6f4ba050-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"6f50a960-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6f4ba050-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca/signaling 200 34ms","method":"POST","requestID":"6f4ba050-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":992,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F98ea6197-16b4-48f2-816c-c938b5550240","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f60fbf88-3951-4288-8a20-1e14660624aa","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.841814} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":992,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.991542,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/98ea6197-16b4-48f2-816c-c938b5550240","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6f50a960-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/98ea6197-16b4-48f2-816c-c938b5550240","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"6f50a960-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"6f50a960-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/98ea6197-16b4-48f2-816c-c938b5550240 200 8ms","method":"GET","requestID":"6f50a960-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/peerconnections/98ea6197-16b4-48f2-816c-c938b5550240"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU","level":"info","message":"auth send jwt","requestID":"e3cc5388d9d3665b6e695f825d8f63be"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e3cc5388d9d3665b6e695f825d8f63be","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2","requestID":"e3cc5388d9d3665b6e695f825d8f63be"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":993,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":993,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.740271,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e3cc5388d9d3665b6e695f825d8f63be","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240558,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"e3cc5388d9d3665b6e695f825d8f63be","responseTime":27,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 80ms","method":"POST","requestID":"d809c3f045987c8da1f48b44faf7f2e4","responseTime":80,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.084","http_referrer":"","http_user_agent":"node-fetch","requestID":"d809c3f045987c8da1f48b44faf7f2e4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6f582370-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2","requestID":"e3cc5388d9d3665b6e695f825d8f63be"} gateway-1 | {"time_local":"18/Jun/2025:09:55:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2 HTTP/1.1","status": "200","body_bytes_sent":"1365","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e3cc5388d9d3665b6e695f825d8f63be"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":994,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} experiment-1 | {"level":"info","message":"GET /experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2 200 35ms","method":"GET","requestID":"e3cc5388d9d3665b6e695f825d8f63be","responseTime":35,"status":200,"url":"/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7ae3dce3-232f-4333-97ff-3d206aad2c59","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.8921216} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":994,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.700175,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6f582370-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU","level":"info","message":"auth send jwt","requestID":"657d4c180caba00b2e2c6411a7fbd37b"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"6f582370-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"657d4c180caba00b2e2c6411a7fbd37b","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2","requestID":"657d4c180caba00b2e2c6411a7fbd37b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6f582370-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca/signaling 200 10ms","method":"POST","requestID":"6f582370-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":995,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":995,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.980107,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"657d4c180caba00b2e2c6411a7fbd37b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240558,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6f5a4650-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"657d4c180caba00b2e2c6411a7fbd37b","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":996,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} forwarding-1 | {"level":"info","message":"Participant \"999d7a9a-799d-45fd-932e-760dc7c948c9\" in room \"http://localhost/rooms/a314c6d5-df57-46d8-8fe6-ea7150ea7951\" did not answer hearbeat check, closing connection","requestID":"6965c4e0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"ffca07f1-e3c2-4f60-b1b9-cf4ca4227351\" in room \"http://localhost/rooms/a314c6d5-df57-46d8-8fe6-ea7150ea7951\" did not answer hearbeat check, closing connection","requestID":"69663a10-4c2a-11f0-b702-8b8a85c3ad9a"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0fc6d8ff-7ed7-463f-8e6c-64ee073dc19a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.9294264} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2"},"level":"info","message":"Attempting to finish experiment","requestID":"657d4c180caba00b2e2c6411a7fbd37b"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":996,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.422005,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"6f5eb320-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6f5a4650-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"6f5a4650-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":997,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:58Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":997,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.684451,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:58Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6f5a4650-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/be5a149f-a444-4dac-bf53-706c2ce5d49c/signaling 200 32ms","method":"POST","requestID":"6f5a4650-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c/signaling"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/98ea6197-16b4-48f2-816c-c938b5550240","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6f5eb320-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/98ea6197-16b4-48f2-816c-c938b5550240","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240558,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OH0.sBk7KduHWC5H0UbA-0BIbrUAUIiQkKkruhBnp1Ei8SU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6f5eb320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:55:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/0bce82a2-dc24-4b78-b7d3-c9dd3d2771d8?id=f625492b-d45b-4f9c-948c-8183139cf407 HTTP/1.1","status": "101","body_bytes_sent":"0","request_time":"0.194","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"fbf437edeb23b3d578a58471810357f1"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"f625492b-d45b-4f9c-948c-8183139cf407\" in room \"http://localhost/rooms/0bce82a2-dc24-4b78-b7d3-c9dd3d2771d8\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"f625492b-d45b-4f9c-948c-8183139cf407\" from room \"http://localhost/rooms/0bce82a2-dc24-4b78-b7d3-c9dd3d2771d8\", code: 1006, reason: "} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/98ea6197-16b4-48f2-816c-c938b5550240","device":"3dd2fc6e-66a4-413a-b94d-64689e25a8ca","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"8ca98ca7-28ae-459b-b18b-cd39b8943666\" in room \"http://localhost/rooms/0bce82a2-dc24-4b78-b7d3-c9dd3d2771d8\""} gateway-1 | {"time_local":"18/Jun/2025:09:55:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/0bce82a2-dc24-4b78-b7d3-c9dd3d2771d8?id=8ca98ca7-28ae-459b-b18b-cd39b8943666 HTTP/1.1","status": "101","body_bytes_sent":"918","request_time":"0.195","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1971bf8641c49e6f69958325af15bffb"} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"8ca98ca7-28ae-459b-b18b-cd39b8943666\" from room \"http://localhost/rooms/0bce82a2-dc24-4b78-b7d3-c9dd3d2771d8\", code: 1005, reason: "} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/98ea6197-16b4-48f2-816c-c938b5550240' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/98ea6197-16b4-48f2-816c-c938b5550240' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"98ea6197-16b4-48f2-816c-c938b5550240","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F98ea6197-16b4-48f2-816c-c938b5550240': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F98ea6197-16b4-48f2-816c-c938b5550240","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"e4499d69-a685-43cf-a2a9-4e6e56984c01","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.9433117} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5ab624ad-49e8-4fa1-b3b7-f74fa4dfac81","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240558.9434617} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"43f829a391e37e849e7bb8e0f3c39b8c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"43f829a391e37e849e7bb8e0f3c39b8c","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"6f5eb320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"71f5a00ad1e0efcba789d22581908718","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/98ea6197-16b4-48f2-816c-c938b5550240"}}},"level":"info","message":"received a callback","requestID":"43f829a391e37e849e7bb8e0f3c39b8c"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"71f5a00ad1e0efcba789d22581908718","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/98ea6197-16b4-48f2-816c-c938b5550240"}}},"level":"info","message":"received a callback","requestID":"71f5a00ad1e0efcba789d22581908718"} device-1 | {"data":{"peerconnection":"98ea6197-16b4-48f2-816c-c938b5550240","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"6f5eb320-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/98ea6197-16b4-48f2-816c-c938b5550240 204 53ms","method":"DELETE","requestID":"6f5eb320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":53,"status":204,"url":"/peerconnections/98ea6197-16b4-48f2-816c-c938b5550240"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2"},"level":"info","message":"Successfully finished experiment","requestID":"657d4c180caba00b2e2c6411a7fbd37b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6f696180-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":998,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:59Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3dd2fc6e-66a4-413a-b94d-64689e25a8ca","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"749e6e3a-d6a2-44ae-a43c-84472309bfb8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240559.0288622} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":998,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.517602,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6f696180-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"6f696180-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6f696180-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca/signaling 200 35ms","method":"POST","requestID":"6f696180-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F530c8bcc-170e-4cda-a1bc-da46b477a3f2': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F530c8bcc-170e-4cda-a1bc-da46b477a3f2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"35a7479d-c87e-44f9-bff0-83a78a6ffa25","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240559.037339} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3abeeda3-96a8-48ae-bc3f-cf5320587daf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240559.037468} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"6f6f2de0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"657d4c180caba00b2e2c6411a7fbd37b","responseTime":40,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":999,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:59Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe5a149f-a444-4dac-bf53-706c2ce5d49c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f07d8bab-a845-4206-afea-5176bf84d462","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240559.042135} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":999,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.489041,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6f6f2de0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6f6f2de0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"6f6f2de0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/be5a149f-a444-4dac-bf53-706c2ce5d49c/signaling 200 8ms","method":"POST","requestID":"6f6f2de0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2","requestID":"657d4c180caba00b2e2c6411a7fbd37b"} gateway-1 | {"time_local":"18/Jun/2025:09:55:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.240","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"657d4c180caba00b2e2c6411a7fbd37b"} experiment-1 | {"level":"info","message":"DELETE /experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2 204 238ms","method":"DELETE","requestID":"657d4c180caba00b2e2c6411a7fbd37b","responseTime":238,"status":204,"url":"/experiments/530c8bcc-170e-4cda-a1bc-da46b477a3f2"} gateway-1 | {"time_local":"18/Jun/2025:09:55:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1683","request_time":"2.216","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"dfdfe8556e48454e7be86878e9ed6e42"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 190ms","method":"POST","requestID":"43f829a391e37e849e7bb8e0f3c39b8c","responseTime":190,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.193","http_referrer":"","http_user_agent":"node-fetch","requestID":"43f829a391e37e849e7bb8e0f3c39b8c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 189ms","method":"POST","requestID":"71f5a00ad1e0efcba789d22581908718","responseTime":189,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:55:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.194","http_referrer":"","http_user_agent":"node-fetch","requestID":"71f5a00ad1e0efcba789d22581908718"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OX0.of6LJRggSwI8tDdIBg4zDEbRGinSl8WRqyt9l0rEwio","level":"info","message":"auth send jwt","requestID":"b07204a84a37e071cc74aa96930a98c7"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b07204a84a37e071cc74aa96930a98c7","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"b07204a84a37e071cc74aa96930a98c7"} gateway-1 | {"time_local":"18/Jun/2025:09:55:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2006","request_time":"0.862","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"995fd8fd640cf00682ce37fc936250e0"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1000,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:59Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/be5a149f-a444-4dac-bf53-706c2ce5d49c' closed"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1000,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.99826,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b07204a84a37e071cc74aa96930a98c7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240559,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OX0.of6LJRggSwI8tDdIBg4zDEbRGinSl8WRqyt9l0rEwio"} authorization-1 | {"level":"info","message":"POST /authorize 200 32ms","method":"POST","requestID":"b07204a84a37e071cc74aa96930a98c7","responseTime":32,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/3dd2fc6e-66a4-413a-b94d-64689e25a8ca' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5fb437e6-b6e8-484c-b50f-fbd804d55450","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240559.187711} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b07204a84a37e071cc74aa96930a98c7","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"85538cee-affb-49d6-9e4d-4b14c5920d40","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240559.1921737} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"b07204a84a37e071cc74aa96930a98c7","responseTime":28,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"c1ca89fa-d55c-453e-8159-5cfe846d9a4c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240559.2279918} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5c00acbf-4ef0-4d94-ae8e-0790664ef23c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240559.2281008} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"b07204a84a37e071cc74aa96930a98c7","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:59.227954989Z"}]},"request_id":"02146e16-dcfc-433d-a227-e8c0559cf638","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240559.232401} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"b07204a84a37e071cc74aa96930a98c7","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"b07204a84a37e071cc74aa96930a98c7"} gateway-1 | {"time_local":"18/Jun/2025:09:55:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.101","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b07204a84a37e071cc74aa96930a98c7"} device-1 | {"level":"info","message":"POST /devices? 201 96ms","method":"POST","requestID":"b07204a84a37e071cc74aa96930a98c7","responseTime":96,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OX0.of6LJRggSwI8tDdIBg4zDEbRGinSl8WRqyt9l0rEwio","level":"info","message":"auth send jwt","requestID":"b32d7ca9ce0058ee4bdcaa5f0ca05174"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b32d7ca9ce0058ee4bdcaa5f0ca05174","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"b32d7ca9ce0058ee4bdcaa5f0ca05174"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1001,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:55:59Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1001,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.588384,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:55:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b32d7ca9ce0058ee4bdcaa5f0ca05174","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240559,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU1OX0.of6LJRggSwI8tDdIBg4zDEbRGinSl8WRqyt9l0rEwio"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b32d7ca9ce0058ee4bdcaa5f0ca05174","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"574f8c41-907f-4508-b9d3-891758c8e4c0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240559.278432} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"b32d7ca9ce0058ee4bdcaa5f0ca05174","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"26606619-ee78-48ff-8958-903707d874af","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240559.2823896} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"b32d7ca9ce0058ee4bdcaa5f0ca05174","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"879ce311-98e4-45ae-8883-55c4f195e2a7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240559.2914762} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"673e5cbe-0181-457d-a05a-890f68cfd85f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240559.2916675} authorization-1 | {"level":"info","message":"POST /relations/update 200 33ms","method":"POST","requestID":"b32d7ca9ce0058ee4bdcaa5f0ca05174","responseTime":33,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:59.291438725Z"}]},"request_id":"dcbf461d-0a55-4899-b45e-ac56b55b0864","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240559.3171701} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"b32d7ca9ce0058ee4bdcaa5f0ca05174","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"b32d7ca9ce0058ee4bdcaa5f0ca05174"} gateway-1 | {"time_local":"18/Jun/2025:09:55:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.083","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b32d7ca9ce0058ee4bdcaa5f0ca05174"} device-1 | {"level":"info","message":"POST /devices? 201 79ms","method":"POST","requestID":"b32d7ca9ce0058ee4bdcaa5f0ca05174","responseTime":79,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE","level":"info","message":"auth send jwt","requestID":"d149d3d8237bb553c3633597887b380f"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d149d3d8237bb553c3633597887b380f","responseTime":3,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE","level":"info","message":"auth send jwt","requestID":"806b68128b5d849546314af380969783"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"806b68128b5d849546314af380969783","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"d149d3d8237bb553c3633597887b380f"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"806b68128b5d849546314af380969783"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1002,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1002,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.899008,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1003,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d149d3d8237bb553c3633597887b380f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240560,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"d149d3d8237bb553c3633597887b380f","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1003,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.576852,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"806b68128b5d849546314af380969783","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240560,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"806b68128b5d849546314af380969783","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:59.291438725Z"}]},"request_id":"98e824c4-dec1-47f9-bf52-879946006743","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.234209} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d149d3d8237bb553c3633597887b380f","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:59.227954989Z"}]},"request_id":"0ab9e792-cbe1-42f3-a84c-94fb8431087a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.2347138} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"806b68128b5d849546314af380969783","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d9fe165c-68d7-4028-80ea-68f2b7ed3caa","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.2380726} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"d149d3d8237bb553c3633597887b380f","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cd92022e-02d6-4c3e-b6bb-a233cbeea9b0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.2391174} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"806b68128b5d849546314af380969783","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:59.227954989Z"}]},"request_id":"c39c053e-6148-49b9-a463-06be35bbad32","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.2418575} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"806b68128b5d849546314af380969783","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"806b68128b5d849546314af380969783"} gateway-1 | {"time_local":"18/Jun/2025:09:56:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51 HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.045","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"806b68128b5d849546314af380969783"} device-1 | {"level":"info","message":"PATCH /devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51 200 18ms","method":"PATCH","requestID":"806b68128b5d849546314af380969783","responseTime":18,"status":200,"url":"/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE","level":"info","message":"auth send jwt","requestID":"98413b4c736c678653aa02e6f10bc60b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"98413b4c736c678653aa02e6f10bc60b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"98413b4c736c678653aa02e6f10bc60b"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1004,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1004,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.596973,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"98413b4c736c678653aa02e6f10bc60b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240560,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"98413b4c736c678653aa02e6f10bc60b","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:59.291438725Z"}]},"request_id":"27ebe1c2-1de9-4546-94ec-d2611df41157","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.2774374} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"d149d3d8237bb553c3633597887b380f","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"d149d3d8237bb553c3633597887b380f"} device-1 | {"level":"info","message":"PATCH /devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a 200 76ms","method":"PATCH","requestID":"d149d3d8237bb553c3633597887b380f","responseTime":76,"status":200,"url":"/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a"} gateway-1 | {"time_local":"18/Jun/2025:09:56:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.081","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"d149d3d8237bb553c3633597887b380f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE","level":"info","message":"auth send jwt","requestID":"719d825563af7ebd6538c064bcecea55"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"719d825563af7ebd6538c064bcecea55","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"719d825563af7ebd6538c064bcecea55"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1005,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1005,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.654424,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"719d825563af7ebd6538c064bcecea55","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240560,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"719d825563af7ebd6538c064bcecea55","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"98413b4c736c678653aa02e6f10bc60b"} gateway-1 | {"time_local":"18/Jun/2025:09:56:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.047","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"98413b4c736c678653aa02e6f10bc60b"} device-1 | {"level":"info","message":"POST /devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51/websocket 200 45ms","method":"POST","requestID":"98413b4c736c678653aa02e6f10bc60b","responseTime":45,"status":200,"url":"/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"719d825563af7ebd6538c064bcecea55"} gateway-1 | {"time_local":"18/Jun/2025:09:56:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.044","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"719d825563af7ebd6538c064bcecea55"} device-1 | {"level":"info","message":"POST /devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a/websocket 200 40ms","method":"POST","requestID":"719d825563af7ebd6538c064bcecea55","responseTime":40,"status":200,"url":"/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE","level":"info","message":"auth send jwt","requestID":"43964162bcd39bf699e202a48a1782dc"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"43964162bcd39bf699e202a48a1782dc","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"43964162bcd39bf699e202a48a1782dc"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1006,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1006,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.707007,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"43964162bcd39bf699e202a48a1782dc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240560,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"43964162bcd39bf699e202a48a1782dc","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:59.227954989Z"}]},"request_id":"f00e2f00-4072-4c13-859a-d21cfbb19ca7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.3751311} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"43964162bcd39bf699e202a48a1782dc","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"43964162bcd39bf699e202a48a1782dc"} device-1 | {"level":"info","message":"GET /devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51? 200 34ms","method":"GET","requestID":"43964162bcd39bf699e202a48a1782dc","responseTime":34,"status":200,"url":"/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"43964162bcd39bf699e202a48a1782dc"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE","level":"info","message":"auth send jwt","requestID":"492c673a4020154524c8e75c646ade1b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"492c673a4020154524c8e75c646ade1b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"492c673a4020154524c8e75c646ade1b"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1007,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1007,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.743139,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"492c673a4020154524c8e75c646ade1b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240560,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"492c673a4020154524c8e75c646ade1b","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:59.291438725Z"}]},"request_id":"1d37df0c-a948-4e11-bf97-af450b4292c1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.3880699} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"492c673a4020154524c8e75c646ade1b","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"492c673a4020154524c8e75c646ade1b"} gateway-1 | {"time_local":"18/Jun/2025:09:56:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"492c673a4020154524c8e75c646ade1b"} device-1 | {"level":"info","message":"GET /devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a? 200 9ms","method":"GET","requestID":"492c673a4020154524c8e75c646ade1b","responseTime":9,"status":200,"url":"/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE","level":"info","message":"auth send jwt","requestID":"8d1782b2db04227d2c21e09c2c9d91ab"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8d1782b2db04227d2c21e09c2c9d91ab","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"8d1782b2db04227d2c21e09c2c9d91ab"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1008,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1008,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.712208,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8d1782b2db04227d2c21e09c2c9d91ab","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240560,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8d1782b2db04227d2c21e09c2c9d91ab","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea5b4680-531f-4d58-b487-991a43458512"},"level":"info","message":"Attempting to run experiment","requestID":"8d1782b2db04227d2c21e09c2c9d91ab"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea5b4680-531f-4d58-b487-991a43458512"},"level":"info","message":"Attempting to book experiment","requestID":"8d1782b2db04227d2c21e09c2c9d91ab"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"c6205ade-6899-4cf4-bbed-6c6f2067e811\" in room \"http://localhost/rooms/5ad2d2ed-09d9-4439-ba1d-52ebc3ec2858\"","requestID":"6d4a2b00-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"4e5fc686-217d-4192-95b8-48614386cc3b\" in room \"http://localhost/rooms/5ad2d2ed-09d9-4439-ba1d-52ebc3ec2858\"","requestID":"6d4a7920-4c2a-11f0-b702-8b8a85c3ad9a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea5b4680-531f-4d58-b487-991a43458512"},"level":"info","message":"Successfully booked experiment","requestID":"8d1782b2db04227d2c21e09c2c9d91ab"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7049fd80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"704a2490-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1009,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1009,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.596134,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1010,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7049fd80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240560,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7049fd80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1010,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.548523,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"704a2490-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240560,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"704a2490-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:59.227954989Z"}]},"request_id":"6dfb9b92-692a-4eca-aa91-f14cc6796f8e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.4791038} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"7049fd80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:59.291438725Z"}]},"request_id":"99278c89-ffda-4a8d-9771-45e4160d5ba7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.4797373} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"704a2490-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7049fd80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51? 200 12ms","method":"GET","requestID":"7049fd80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"704a2490-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a? 200 11ms","method":"GET","requestID":"704a2490-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea5b4680-531f-4d58-b487-991a43458512"},"level":"info","message":"Setting up experiment","requestID":"8d1782b2db04227d2c21e09c2c9d91ab"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"8d1782b2db04227d2c21e09c2c9d91ab"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea5b4680-531f-4d58-b487-991a43458512"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"8d1782b2db04227d2c21e09c2c9d91ab"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea5b4680-531f-4d58-b487-991a43458512"},"level":"info","message":"Successfully locked booking for experiment","requestID":"8d1782b2db04227d2c21e09c2c9d91ab"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea5b4680-531f-4d58-b487-991a43458512"},"level":"info","message":"Successfully set up experiment","requestID":"8d1782b2db04227d2c21e09c2c9d91ab"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"705261f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"70528900-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea5b4680-531f-4d58-b487-991a43458512"},"level":"info","message":"Successfully running experiment","requestID":"8d1782b2db04227d2c21e09c2c9d91ab"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1011,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1011,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.723679,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1012,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"705261f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240560,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"705261f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1012,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.647516,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"70528900-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240560,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"70528900-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:59.227954989Z"}]},"request_id":"9e8b8e89-b9c6-4098-92b6-7f4425d20ad8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.536868} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"705261f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:59.291438725Z"}]},"request_id":"c5d506e8-3cff-4600-87f4-a80ccbf7fc72","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.5375376} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"70528900-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"705261f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51? 200 38ms","method":"GET","requestID":"705261f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":38,"status":200,"url":"/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"70528900-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a? 200 37ms","method":"GET","requestID":"70528900-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fea5b4680-531f-4d58-b487-991a43458512#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fea5b4680-531f-4d58-b487-991a43458512","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"bf260f25-04a1-4b6a-9b20-0d7a5ee3b844","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.5674572} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9d5af3cc-034f-41ef-acef-ae850e06381e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.5678182} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7058a380-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"8d1782b2db04227d2c21e09c2c9d91ab","responseTime":36,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1013,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a9ce9010-5608-4ff7-b8a0-ea2ba3c94367","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.5723968} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1013,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.580036,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7058a380-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"7058a380-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/ea5b4680-531f-4d58-b487-991a43458512","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"8d1782b2db04227d2c21e09c2c9d91ab"} gateway-1 | {"time_local":"18/Jun/2025:09:56:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1296","request_time":"0.183","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8d1782b2db04227d2c21e09c2c9d91ab"} experiment-1 | {"level":"info","message":"POST /experiments? 201 180ms","method":"POST","requestID":"8d1782b2db04227d2c21e09c2c9d91ab","responseTime":180,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7058a380-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51/signaling 200 8ms","method":"POST","requestID":"7058a380-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE","level":"info","message":"auth send jwt","requestID":"95a8cdedfb2555801a13e0e69f34a8e5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"95a8cdedfb2555801a13e0e69f34a8e5","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"705a2a20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"95a8cdedfb2555801a13e0e69f34a8e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1014,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1015,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1015,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.621486,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"95a8cdedfb2555801a13e0e69f34a8e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240560,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"95a8cdedfb2555801a13e0e69f34a8e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"857a4850-3f0a-45d8-8828-32ee8a759e9c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.5823367} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1014,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.223917,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"705a2a20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"705a2a20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:59.227954989Z"}]},"request_id":"6f713088-1a95-4255-94f5-12619ab04e6c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.609919} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"705a2a20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a/signaling 200 33ms","method":"POST","requestID":"705a2a20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"95a8cdedfb2555801a13e0e69f34a8e5","responseTime":27,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea5b4680-531f-4d58-b487-991a43458512"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"8d1782b2db04227d2c21e09c2c9d91ab"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"705f8150-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"705fa860-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"95a8cdedfb2555801a13e0e69f34a8e5"} gateway-1 | {"time_local":"18/Jun/2025:09:56:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"95a8cdedfb2555801a13e0e69f34a8e5"} device-1 | {"level":"info","message":"GET /devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51? 200 37ms","method":"GET","requestID":"95a8cdedfb2555801a13e0e69f34a8e5","responseTime":37,"status":200,"url":"/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51?"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1016,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1016,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.656959,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1017,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"705f8150-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240560,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"705f8150-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1017,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.407694,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE","level":"info","message":"auth send jwt","requestID":"cfb6a8dafc69d8f9f6dfb2cffeca4570"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"705fa860-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240560,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cfb6a8dafc69d8f9f6dfb2cffeca4570","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"705fa860-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"cfb6a8dafc69d8f9f6dfb2cffeca4570"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:59.227954989Z"}]},"request_id":"1cf091b4-f985-462d-af31-ceddd196dbde","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.6222003} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"705f8150-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:59.291438725Z"}]},"request_id":"67c2eede-ed60-4832-a6b4-8d222e183910","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.623043} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"705fa860-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"705f8150-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1018,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1018,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.667647,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} device-1 | {"level":"info","message":"GET /devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51? 200 13ms","method":"GET","requestID":"705f8150-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51?"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"cfb6a8dafc69d8f9f6dfb2cffeca4570","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240560,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"cfb6a8dafc69d8f9f6dfb2cffeca4570","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"705fa860-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a? 200 16ms","method":"GET","requestID":"705fa860-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":16,"status":200,"url":"/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:55:59.291438725Z"}]},"request_id":"af40388d-3062-4f87-b00f-8a6f1291466f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.6304977} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"cfb6a8dafc69d8f9f6dfb2cffeca4570","responseTime":3,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea5b4680-531f-4d58-b487-991a43458512"},"level":"info","message":"Building connection plan","requestID":"8d1782b2db04227d2c21e09c2c9d91ab"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"fb2dc964-4207-4dd8-969d-f3dae06bf538"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"afffcedf-15e9-4885-9987-c328171bcf99"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"8ca51bf4-5e93-47ad-8542-7ab033aa71fb"}]},"level":"info","message":"Built pairwise service configurations","requestID":"8d1782b2db04227d2c21e09c2c9d91ab"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"70663810-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"70663810-4c2a-11f0-b702-8b8a85c3ad9a"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"cfb6a8dafc69d8f9f6dfb2cffeca4570"} forwarding-1 | {"level":"info","message":"POST /rooms 201 0ms","method":"POST","requestID":"70663810-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":0,"status":201,"url":"/rooms"} gateway-1 | {"time_local":"18/Jun/2025:09:56:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cfb6a8dafc69d8f9f6dfb2cffeca4570"} device-1 | {"level":"info","message":"GET /devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a? 200 37ms","method":"GET","requestID":"cfb6a8dafc69d8f9f6dfb2cffeca4570","responseTime":37,"status":200,"url":"/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a?"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/3f60bc57-64fe-47e7-90d6-c121a35ebc06?id=15cd1590-6b0c-403c-86e2-8a75bcc1f72a","ws://localhost/rooms/3f60bc57-64fe-47e7-90d6-c121a35ebc06?id=e7c36b5a-2018-4737-ac99-b3c191dbcc30"]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"8d1782b2db04227d2c21e09c2c9d91ab"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"7066ad40-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1019,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1019,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.722554,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7066ad40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240560,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"7066ad40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"f8f03642-bd5d-4d45-8208-04ec49de6263","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.669783} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4dcc340b-9cf7-4d70-9b67-23aa420f6d39","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.6700642} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"7066ad40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"7066ad40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"7066ad40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/026daf14-843d-423d-8941-4a304696f984'","requestID":"7066ad40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/026daf14-843d-423d-8941-4a304696f984'","requestID":"7066ad40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"7066ad40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 46ms","method":"POST","requestID":"7066ad40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":46,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"7066ad40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/026daf14-843d-423d-8941-4a304696f984' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"026daf14-843d-423d-8941-4a304696f984","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"706eeaa0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"e7c36b5a-2018-4737-ac99-b3c191dbcc30\" in room \"http://localhost/rooms/3f60bc57-64fe-47e7-90d6-c121a35ebc06\"","requestID":"706eeaa0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"706eeaa0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"706f11b0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"15cd1590-6b0c-403c-86e2-8a75bcc1f72a\" in room \"http://localhost/rooms/3f60bc57-64fe-47e7-90d6-c121a35ebc06\"","requestID":"706f11b0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"706f11b0-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"4a260cc41509c864fa32a4e56bd5eebc","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"e7c36b5a-2018-4737-ac99-b3c191dbcc30\" in room \"http://localhost/rooms/3f60bc57-64fe-47e7-90d6-c121a35ebc06\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"e7c36b5a-2018-4737-ac99-b3c191dbcc30\" in room \"http://localhost/rooms/3f60bc57-64fe-47e7-90d6-c121a35ebc06\""} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4a260cc41509c864fa32a4e56bd5eebc","responseTime":2,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"e7c36b5a-2018-4737-ac99-b3c191dbcc30\" in room \"http://localhost/rooms/3f60bc57-64fe-47e7-90d6-c121a35ebc06\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"e7c36b5a-2018-4737-ac99-b3c191dbcc30\" in room \"http://localhost/rooms/3f60bc57-64fe-47e7-90d6-c121a35ebc06\""} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/026daf14-843d-423d-8941-4a304696f984"}}},"level":"info","message":"received a callback","requestID":"4a260cc41509c864fa32a4e56bd5eebc"} device-1 | {"data":{"peerconnection":"026daf14-843d-423d-8941-4a304696f984","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 38ms","method":"POST","requestID":"4a260cc41509c864fa32a4e56bd5eebc","responseTime":38,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch","requestID":"4a260cc41509c864fa32a4e56bd5eebc"} device-1 | {"data":{"peerconnection":"026daf14-843d-423d-8941-4a304696f984","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea5b4680-531f-4d58-b487-991a43458512"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"8d1782b2db04227d2c21e09c2c9d91ab"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7076d9e0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1020,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/026daf14-843d-423d-8941-4a304696f984' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"026daf14-843d-423d-8941-4a304696f984","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9742aabe-005e-4423-a009-7018243b5726","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.7705476} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1020,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.805175,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c37057d3e4419db80bfd39096a04031a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c37057d3e4419db80bfd39096a04031a","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7076d9e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"7076d9e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/026daf14-843d-423d-8941-4a304696f984"}}},"level":"info","message":"received a callback","requestID":"c37057d3e4419db80bfd39096a04031a"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"707c7f30-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1021,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F026daf14-843d-423d-8941-4a304696f984","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"81189480-f439-4804-a488-0582994d4261","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.807315} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7076d9e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51/signaling 200 41ms","method":"POST","requestID":"7076d9e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":41,"status":200,"url":"/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1021,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.41962,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/026daf14-843d-423d-8941-4a304696f984","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"707c7f30-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/026daf14-843d-423d-8941-4a304696f984","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"707c7f30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"707d90a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"707c7f30-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/026daf14-843d-423d-8941-4a304696f984 200 9ms","method":"GET","requestID":"707c7f30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/peerconnections/026daf14-843d-423d-8941-4a304696f984"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1022,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"30f7a039-92b3-4bcf-8888-cc53470bdf96","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.8145223} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1022,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.360907,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"707d90a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"707d90a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"707d90a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a/signaling 200 8ms","method":"POST","requestID":"707d90a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE","level":"info","message":"auth send jwt","requestID":"163c5d0ee45ab7217792cf21fd39a618"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"163c5d0ee45ab7217792cf21fd39a618","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/ea5b4680-531f-4d58-b487-991a43458512","requestID":"163c5d0ee45ab7217792cf21fd39a618"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1023,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1023,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":24.81837,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ea5b4680-531f-4d58-b487-991a43458512","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"163c5d0ee45ab7217792cf21fd39a618","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/ea5b4680-531f-4d58-b487-991a43458512","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240560,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"163c5d0ee45ab7217792cf21fd39a618","responseTime":27,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 77ms","method":"POST","requestID":"c37057d3e4419db80bfd39096a04031a","responseTime":77,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.079","http_referrer":"","http_user_agent":"node-fetch","requestID":"c37057d3e4419db80bfd39096a04031a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7083d230-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1024,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/ea5b4680-531f-4d58-b487-991a43458512","requestID":"163c5d0ee45ab7217792cf21fd39a618"} gateway-1 | {"time_local":"18/Jun/2025:09:56:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/ea5b4680-531f-4d58-b487-991a43458512 HTTP/1.1","status": "200","body_bytes_sent":"1369","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"163c5d0ee45ab7217792cf21fd39a618"} experiment-1 | {"level":"info","message":"GET /experiments/ea5b4680-531f-4d58-b487-991a43458512 200 33ms","method":"GET","requestID":"163c5d0ee45ab7217792cf21fd39a618","responseTime":33,"status":200,"url":"/experiments/ea5b4680-531f-4d58-b487-991a43458512"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3c490366-7f4c-4586-9344-61734e81bb1d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.8550148} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1024,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.446724,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7083d230-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"7083d230-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE","level":"info","message":"auth send jwt","requestID":"a9d003b65f1365dbe09474cda091968e"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a9d003b65f1365dbe09474cda091968e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7083d230-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51/signaling 200 8ms","method":"POST","requestID":"7083d230-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51/signaling"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/ea5b4680-531f-4d58-b487-991a43458512","requestID":"a9d003b65f1365dbe09474cda091968e"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1025,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1025,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.656847,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"70857fe0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ea5b4680-531f-4d58-b487-991a43458512","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a9d003b65f1365dbe09474cda091968e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/ea5b4680-531f-4d58-b487-991a43458512","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240560,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"a9d003b65f1365dbe09474cda091968e","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1026,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a91ea422-8cbf-49d5-b89f-38a8a4419a6e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.8668242} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1026,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.420764,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea5b4680-531f-4d58-b487-991a43458512"},"level":"info","message":"Attempting to finish experiment","requestID":"a9d003b65f1365dbe09474cda091968e"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"70857fe0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"70857fe0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"70866a40-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1027,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"70857fe0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a/signaling 200 10ms","method":"POST","requestID":"70857fe0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1027,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.178237,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/026daf14-843d-423d-8941-4a304696f984","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"70866a40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/026daf14-843d-423d-8941-4a304696f984","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240560,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MH0.p_w7ctIi4hrjsJIwTNi0Y3tjqB8QPU_bPiM1tsD57pE"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"70866a40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:56:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/3f60bc57-64fe-47e7-90d6-c121a35ebc06?id=e7c36b5a-2018-4737-ac99-b3c191dbcc30 HTTP/1.1","status": "101","body_bytes_sent":"458","request_time":"0.189","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"402bf6982b315a3bdd92ffeed42fa100"} gateway-1 | {"time_local":"18/Jun/2025:09:56:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/3f60bc57-64fe-47e7-90d6-c121a35ebc06?id=15cd1590-6b0c-403c-86e2-8a75bcc1f72a HTTP/1.1","status": "101","body_bytes_sent":"0","request_time":"0.189","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"46ce61b9494ae005e0b517f3057f3df9"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"e7c36b5a-2018-4737-ac99-b3c191dbcc30\" in room \"http://localhost/rooms/3f60bc57-64fe-47e7-90d6-c121a35ebc06\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"e7c36b5a-2018-4737-ac99-b3c191dbcc30\" from room \"http://localhost/rooms/3f60bc57-64fe-47e7-90d6-c121a35ebc06\", code: 1006, reason: "} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/026daf14-843d-423d-8941-4a304696f984' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/026daf14-843d-423d-8941-4a304696f984' to 'http://localhost/callbacks/experiment'"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"15cd1590-6b0c-403c-86e2-8a75bcc1f72a\" in room \"http://localhost/rooms/3f60bc57-64fe-47e7-90d6-c121a35ebc06\""} device-1 | {"data":{"peerconnection":"026daf14-843d-423d-8941-4a304696f984","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"15cd1590-6b0c-403c-86e2-8a75bcc1f72a\" from room \"http://localhost/rooms/3f60bc57-64fe-47e7-90d6-c121a35ebc06\", code: 1006, reason: "} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F026daf14-843d-423d-8941-4a304696f984': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F026daf14-843d-423d-8941-4a304696f984","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"5d4be328-2cf9-4093-9cd5-d65eaed0cff8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.9059973} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d55939709836ad9b3ff92b8ebe8d4c9a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fa305a83-4f6d-4a37-8dba-9ed2390f5a83","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.906226} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d55939709836ad9b3ff92b8ebe8d4c9a","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"579e73f19ee23d7c5f635fb4d123258f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"70866a40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/026daf14-843d-423d-8941-4a304696f984"}}},"level":"info","message":"received a callback","requestID":"d55939709836ad9b3ff92b8ebe8d4c9a"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"579e73f19ee23d7c5f635fb4d123258f","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/026daf14-843d-423d-8941-4a304696f984"}}},"level":"info","message":"received a callback","requestID":"579e73f19ee23d7c5f635fb4d123258f"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"70866a40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/026daf14-843d-423d-8941-4a304696f984 204 51ms","method":"DELETE","requestID":"70866a40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":51,"status":204,"url":"/peerconnections/026daf14-843d-423d-8941-4a304696f984"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea5b4680-531f-4d58-b487-991a43458512"},"level":"info","message":"Successfully finished experiment","requestID":"a9d003b65f1365dbe09474cda091968e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"709425e0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1028,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F84f243f2-bb68-4ce9-bd76-f24a1eb67e51","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ec2d0f7e-b3df-40ba-b0d0-326c1b71ae35","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.9624414} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1028,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.422249,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"709425e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"709425e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"709425e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51/signaling 200 8ms","method":"POST","requestID":"709425e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7095ac80-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fea5b4680-531f-4d58-b487-991a43458512': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fea5b4680-531f-4d58-b487-991a43458512","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"2911c03a-d34a-4462-a51c-a70bdd35f7e2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.970515} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"55fe05d9-2e09-48bb-8269-fc6984df266a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.970695} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1029,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"a9d003b65f1365dbe09474cda091968e","responseTime":15,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4736f8e9-8414-4c1e-9457-f5f9ac56b06a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e2691ee2-22ff-4feb-b04c-d549dfcacfe7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240560.9969625} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1029,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.518853,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7095ac80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"7095ac80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7095ac80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a/signaling 200 33ms","method":"POST","requestID":"7095ac80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/ea5b4680-531f-4d58-b487-991a43458512","requestID":"a9d003b65f1365dbe09474cda091968e"} gateway-1 | {"time_local":"18/Jun/2025:09:56:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/ea5b4680-531f-4d58-b487-991a43458512 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.234","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a9d003b65f1365dbe09474cda091968e"} experiment-1 | {"level":"info","message":"DELETE /experiments/ea5b4680-531f-4d58-b487-991a43458512 204 231ms","method":"DELETE","requestID":"a9d003b65f1365dbe09474cda091968e","responseTime":231,"status":204,"url":"/experiments/ea5b4680-531f-4d58-b487-991a43458512"} gateway-1 | {"time_local":"18/Jun/2025:09:56:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2005","request_time":"0.765","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"af1cff0df971763a05c2208de500ce9b"} gateway-1 | {"time_local":"18/Jun/2025:09:56:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2008","request_time":"0.797","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"07bf8b851bc950ff246ad505779d10ef"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 186ms","method":"POST","requestID":"d55939709836ad9b3ff92b8ebe8d4c9a","responseTime":186,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.188","http_referrer":"","http_user_agent":"node-fetch","requestID":"d55939709836ad9b3ff92b8ebe8d4c9a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 185ms","method":"POST","requestID":"579e73f19ee23d7c5f635fb4d123258f","responseTime":185,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.189","http_referrer":"","http_user_agent":"node-fetch","requestID":"579e73f19ee23d7c5f635fb4d123258f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MX0._UFcQzV4Kh-tBBdgWfHBfrmmAtMU10BnunG28hs57K8","level":"info","message":"auth send jwt","requestID":"ccfab32f92b1d054fd6296bc697828f8"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ccfab32f92b1d054fd6296bc697828f8","responseTime":3,"status":200,"url":"/auth"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/84f243f2-bb68-4ce9-bd76-f24a1eb67e51' closed"} device-1 | {"level":"info","message":"postDevices called","requestID":"ccfab32f92b1d054fd6296bc697828f8"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1030,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:01Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1030,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.797353,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ccfab32f92b1d054fd6296bc697828f8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240561,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MX0._UFcQzV4Kh-tBBdgWfHBfrmmAtMU10BnunG28hs57K8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"ccfab32f92b1d054fd6296bc697828f8","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/4736f8e9-8414-4c1e-9457-f5f9ac56b06a' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a2fdf6e0-4f53-4e94-a010-06f8c1b4598c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240561.139959} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ccfab32f92b1d054fd6296bc697828f8","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d3cebdd2-6a5d-480f-a946-6b74ebb0158c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240561.1444345} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"ccfab32f92b1d054fd6296bc697828f8","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"7cb88259-1e69-4865-bad2-75a1e16d6145","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240561.1574988} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4ef3c375-2a1b-421b-abac-8c40c4ce5f72","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240561.15768} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"ccfab32f92b1d054fd6296bc697828f8","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:01.157458406Z"}]},"request_id":"27fb1c44-1ff4-4b7c-ac08-d9df7a089d78","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240561.1863468} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"ccfab32f92b1d054fd6296bc697828f8","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"ccfab32f92b1d054fd6296bc697828f8"} gateway-1 | {"time_local":"18/Jun/2025:09:56:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.097","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ccfab32f92b1d054fd6296bc697828f8"} device-1 | {"level":"info","message":"POST /devices? 201 90ms","method":"POST","requestID":"ccfab32f92b1d054fd6296bc697828f8","responseTime":90,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MX0._UFcQzV4Kh-tBBdgWfHBfrmmAtMU10BnunG28hs57K8","level":"info","message":"auth send jwt","requestID":"e595fc4786d4e7763de5aa50d8fadb4f"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e595fc4786d4e7763de5aa50d8fadb4f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"e595fc4786d4e7763de5aa50d8fadb4f"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1031,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:01Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1031,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.897063,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e595fc4786d4e7763de5aa50d8fadb4f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240561,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2MX0._UFcQzV4Kh-tBBdgWfHBfrmmAtMU10BnunG28hs57K8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"e595fc4786d4e7763de5aa50d8fadb4f","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9107fae3-e347-4d1f-88dc-f2a8a43085fb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240561.2337215} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"e595fc4786d4e7763de5aa50d8fadb4f","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ff1118c2-938b-4bef-96f5-fa6a48e7e78c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240561.238561} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"e595fc4786d4e7763de5aa50d8fadb4f","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"6005e984-9fcb-4614-8b93-d8ca77ad56f7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240561.2489617} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dcbdf06b-1f05-4234-87c9-77899b36c9b5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240561.249097} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"e595fc4786d4e7763de5aa50d8fadb4f","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:01.248923682Z"}]},"request_id":"662eb383-6d1f-44ae-a3a9-fcf75e740fed","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240561.2533374} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e595fc4786d4e7763de5aa50d8fadb4f","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"e595fc4786d4e7763de5aa50d8fadb4f"} gateway-1 | {"time_local":"18/Jun/2025:09:56:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.066","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e595fc4786d4e7763de5aa50d8fadb4f"} device-1 | {"level":"info","message":"POST /devices? 201 62ms","method":"POST","requestID":"e595fc4786d4e7763de5aa50d8fadb4f","responseTime":62,"status":201,"url":"/devices?"} forwarding-1 | {"level":"info","message":"Participant \"60bc5aef-0115-41f5-b776-906782ba4a40\" in room \"http://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632\" did not answer hearbeat check, closing connection","requestID":"6b5008b0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"44d29ba7-d0ec-419e-a0b5-c09a181414ae\" in room \"http://localhost/rooms/4c737b9b-2487-460d-b183-f4eaa6c2f632\" did not answer hearbeat check, closing connection","requestID":"6b502fc0-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA","level":"info","message":"auth send jwt","requestID":"509e4d45cea4aa7eb08a2d189f1f089c"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"509e4d45cea4aa7eb08a2d189f1f089c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"509e4d45cea4aa7eb08a2d189f1f089c"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1032,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA","level":"info","message":"auth send jwt","requestID":"caeef62b40460e92d912032b123a3f46"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1032,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.714787,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"caeef62b40460e92d912032b123a3f46","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"caeef62b40460e92d912032b123a3f46"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"509e4d45cea4aa7eb08a2d189f1f089c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240562,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"509e4d45cea4aa7eb08a2d189f1f089c","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1033,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1033,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.623512,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"caeef62b40460e92d912032b123a3f46","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240562,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"caeef62b40460e92d912032b123a3f46","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:01.248923682Z"}]},"request_id":"54942cfc-72d3-4131-9681-4b01dcc1c815","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.2071588} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"509e4d45cea4aa7eb08a2d189f1f089c","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:01.157458406Z"}]},"request_id":"b497d839-69ce-462e-84fa-0da56e05e9b5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.2097673} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"caeef62b40460e92d912032b123a3f46","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f387abd6-f36f-4ae7-b28c-282433d47f15","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.2112217} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"509e4d45cea4aa7eb08a2d189f1f089c","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bcc60d93-e3cf-4cc5-983e-7437997bef8d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.21601} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"caeef62b40460e92d912032b123a3f46","responseTime":28,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:01.248923682Z"}]},"request_id":"55b635a8-e504-4e23-8fda-6966ee7d9fd3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.2446373} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"509e4d45cea4aa7eb08a2d189f1f089c","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"509e4d45cea4aa7eb08a2d189f1f089c"} gateway-1 | {"time_local":"18/Jun/2025:09:56:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.052","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"509e4d45cea4aa7eb08a2d189f1f089c"} device-1 | {"level":"info","message":"PATCH /devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d 200 48ms","method":"PATCH","requestID":"509e4d45cea4aa7eb08a2d189f1f089c","responseTime":48,"status":200,"url":"/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA","level":"info","message":"auth send jwt","requestID":"0be0506471ae55932e8ca042d5aafacd"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0be0506471ae55932e8ca042d5aafacd","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"0be0506471ae55932e8ca042d5aafacd"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1034,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1034,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.685301,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0be0506471ae55932e8ca042d5aafacd","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240562,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0be0506471ae55932e8ca042d5aafacd","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:01.157458406Z"}]},"request_id":"fd1556f7-494c-4c6f-8c30-5bc466e989ea","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.256236} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"caeef62b40460e92d912032b123a3f46","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"caeef62b40460e92d912032b123a3f46"} gateway-1 | {"time_local":"18/Jun/2025:09:56:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/9728160b-bb68-4d50-a4e6-26316d27399b HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.060","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"caeef62b40460e92d912032b123a3f46"} device-1 | {"level":"info","message":"PATCH /devices/9728160b-bb68-4d50-a4e6-26316d27399b 200 56ms","method":"PATCH","requestID":"caeef62b40460e92d912032b123a3f46","responseTime":56,"status":200,"url":"/devices/9728160b-bb68-4d50-a4e6-26316d27399b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA","level":"info","message":"auth send jwt","requestID":"afa96c4b5887d3d73322d2aef55020a7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"afa96c4b5887d3d73322d2aef55020a7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"afa96c4b5887d3d73322d2aef55020a7"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1035,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1035,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.652744,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"afa96c4b5887d3d73322d2aef55020a7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240562,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"afa96c4b5887d3d73322d2aef55020a7","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"0be0506471ae55932e8ca042d5aafacd"} device-1 | {"level":"info","message":"POST /devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d/websocket 200 16ms","method":"POST","requestID":"0be0506471ae55932e8ca042d5aafacd","responseTime":16,"status":200,"url":"/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:56:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.020","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"0be0506471ae55932e8ca042d5aafacd"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"afa96c4b5887d3d73322d2aef55020a7"} gateway-1 | {"time_local":"18/Jun/2025:09:56:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/9728160b-bb68-4d50-a4e6-26316d27399b/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.042","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"afa96c4b5887d3d73322d2aef55020a7"} device-1 | {"level":"info","message":"POST /devices/9728160b-bb68-4d50-a4e6-26316d27399b/websocket 200 39ms","method":"POST","requestID":"afa96c4b5887d3d73322d2aef55020a7","responseTime":39,"status":200,"url":"/devices/9728160b-bb68-4d50-a4e6-26316d27399b/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA","level":"info","message":"auth send jwt","requestID":"a1fbe79dd92f920abf74abf135e8489b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a1fbe79dd92f920abf74abf135e8489b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a1fbe79dd92f920abf74abf135e8489b"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1036,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1036,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.641102,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a1fbe79dd92f920abf74abf135e8489b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240562,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a1fbe79dd92f920abf74abf135e8489b","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:01.157458406Z"}]},"request_id":"ab1152ba-4aaa-46a5-832b-ddbd3fd1c2a0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.3467264} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a1fbe79dd92f920abf74abf135e8489b","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"a1fbe79dd92f920abf74abf135e8489b"} device-1 | {"level":"info","message":"GET /devices/9728160b-bb68-4d50-a4e6-26316d27399b? 200 9ms","method":"GET","requestID":"a1fbe79dd92f920abf74abf135e8489b","responseTime":9,"status":200,"url":"/devices/9728160b-bb68-4d50-a4e6-26316d27399b?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9728160b-bb68-4d50-a4e6-26316d27399b? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a1fbe79dd92f920abf74abf135e8489b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA","level":"info","message":"auth send jwt","requestID":"ed8f7f9a6c88050138e4cf6e211c4948"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ed8f7f9a6c88050138e4cf6e211c4948","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ed8f7f9a6c88050138e4cf6e211c4948"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1037,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1037,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.142135,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ed8f7f9a6c88050138e4cf6e211c4948","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240562,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ed8f7f9a6c88050138e4cf6e211c4948","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:01.248923682Z"}]},"request_id":"982c986d-cce0-4cc3-9193-50abfb54805a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.385483} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"ed8f7f9a6c88050138e4cf6e211c4948","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ed8f7f9a6c88050138e4cf6e211c4948"} gateway-1 | {"time_local":"18/Jun/2025:09:56:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ed8f7f9a6c88050138e4cf6e211c4948"} device-1 | {"level":"info","message":"GET /devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d? 200 34ms","method":"GET","requestID":"ed8f7f9a6c88050138e4cf6e211c4948","responseTime":34,"status":200,"url":"/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA","level":"info","message":"auth send jwt","requestID":"c4c8d013b390d6622746eb1453c73cf0"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c4c8d013b390d6622746eb1453c73cf0","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"c4c8d013b390d6622746eb1453c73cf0"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1038,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1038,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.818138,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c4c8d013b390d6622746eb1453c73cf0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240562,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c4c8d013b390d6622746eb1453c73cf0","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053"},"level":"info","message":"Attempting to run experiment","requestID":"c4c8d013b390d6622746eb1453c73cf0"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053"},"level":"info","message":"Attempting to book experiment","requestID":"c4c8d013b390d6622746eb1453c73cf0"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053"},"level":"info","message":"Successfully booked experiment","requestID":"c4c8d013b390d6622746eb1453c73cf0"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7176e4c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"71770bd0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1039,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1039,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.638983,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1040,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7176e4c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240562,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7176e4c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1040,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.596517,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"71770bd0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240562,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"71770bd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:01.157458406Z"}]},"request_id":"ec4c1229-8e6e-4db5-a7e4-9156080490cb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.4510138} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"7176e4c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:01.248923682Z"}]},"request_id":"d38b613a-517a-4d09-9f78-51e65a941d7f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.4515579} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"71770bd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7176e4c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/9728160b-bb68-4d50-a4e6-26316d27399b? 200 11ms","method":"GET","requestID":"7176e4c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/9728160b-bb68-4d50-a4e6-26316d27399b?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"71770bd0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d? 200 10ms","method":"GET","requestID":"71770bd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053"},"level":"info","message":"Setting up experiment","requestID":"c4c8d013b390d6622746eb1453c73cf0"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"c4c8d013b390d6622746eb1453c73cf0"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"c4c8d013b390d6622746eb1453c73cf0"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053"},"level":"info","message":"Successfully locked booking for experiment","requestID":"c4c8d013b390d6622746eb1453c73cf0"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053"},"level":"info","message":"Successfully set up experiment","requestID":"c4c8d013b390d6622746eb1453c73cf0"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"71800c80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"718081b0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053"},"level":"info","message":"Successfully running experiment","requestID":"c4c8d013b390d6622746eb1453c73cf0"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1041,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1041,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.627857,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1042,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"71800c80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240562,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA"} authorization-1 | {"level":"info","message":"POST /authorize 200 23ms","method":"POST","requestID":"71800c80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":23,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1042,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.590755,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"718081b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240562,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"718081b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:01.157458406Z"}]},"request_id":"8993401b-7e20-4081-b79e-041ec0a8c1f4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.534543} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"71800c80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:01.248923682Z"}]},"request_id":"bb5ab262-f0bb-4ec0-b110-8bc2b7a6f8aa","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.5352135} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"718081b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"71800c80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/9728160b-bb68-4d50-a4e6-26316d27399b? 200 34ms","method":"GET","requestID":"71800c80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/9728160b-bb68-4d50-a4e6-26316d27399b?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"718081b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d? 200 32ms","method":"GET","requestID":"718081b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2e2b541d-66da-4c61-8a7d-4f8849f9c053#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2e2b541d-66da-4c61-8a7d-4f8849f9c053","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"2482558d-340f-43ec-8a0c-2ea77eb50ea2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.5409648} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7185b1d0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"15d69d35-cbce-4a67-bf1a-4b2e3a81dfa5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.54134} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"c4c8d013b390d6622746eb1453c73cf0","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1043,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"252c3f8f-5b1a-45de-95e1-855a9b8eb949","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.5462794} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1043,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.0883,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7185b1d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"7185b1d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"c4c8d013b390d6622746eb1453c73cf0"} gateway-1 | {"time_local":"18/Jun/2025:09:56:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1296","request_time":"0.160","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c4c8d013b390d6622746eb1453c73cf0"} experiment-1 | {"level":"info","message":"POST /experiments? 201 156ms","method":"POST","requestID":"c4c8d013b390d6622746eb1453c73cf0","responseTime":156,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7185b1d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/9728160b-bb68-4d50-a4e6-26316d27399b/signaling 200 9ms","method":"POST","requestID":"7185b1d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/9728160b-bb68-4d50-a4e6-26316d27399b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"718b3010-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA","level":"info","message":"auth send jwt","requestID":"f3187318f60d5b9866783f692974edbd"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"f3187318f60d5b9866783f692974edbd","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"f3187318f60d5b9866783f692974edbd"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1044,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1045,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1045,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.609027,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f3187318f60d5b9866783f692974edbd","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240562,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"f3187318f60d5b9866783f692974edbd","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2b57cbbc-e5e0-4d7b-ab37-c4967f9a1756","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.5819352} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1044,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.557383,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"718b3010-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"718b3010-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:01.157458406Z"}]},"request_id":"b27290c6-60a2-44e0-be08-2ed12ab89b4f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.585358} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"718b3010-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d/signaling 200 9ms","method":"POST","requestID":"718b3010-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"f3187318f60d5b9866783f692974edbd","responseTime":2,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"c4c8d013b390d6622746eb1453c73cf0"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"718cddc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"718d04d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"f3187318f60d5b9866783f692974edbd"} gateway-1 | {"time_local":"18/Jun/2025:09:56:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9728160b-bb68-4d50-a4e6-26316d27399b? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f3187318f60d5b9866783f692974edbd"} device-1 | {"level":"info","message":"GET /devices/9728160b-bb68-4d50-a4e6-26316d27399b? 200 12ms","method":"GET","requestID":"f3187318f60d5b9866783f692974edbd","responseTime":12,"status":200,"url":"/devices/9728160b-bb68-4d50-a4e6-26316d27399b?"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1046,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1046,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.957319,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1047,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"718cddc0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240562,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"718cddc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1047,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.647549,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"718d04d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240562,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"718d04d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA","level":"info","message":"auth send jwt","requestID":"d036c18ac7b3b8cfd576b977f5b655be"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d036c18ac7b3b8cfd576b977f5b655be","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d036c18ac7b3b8cfd576b977f5b655be"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:01.157458406Z"}]},"request_id":"9f15c6cb-0368-4dd7-8d55-21d0861c59f9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.5959065} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"718cddc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:01.248923682Z"}]},"request_id":"7ed51f1c-5f7b-461c-97ec-0e37f1aad607","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.5966113} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"718d04d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1048,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1048,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.502552,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d036c18ac7b3b8cfd576b977f5b655be","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240562,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"d036c18ac7b3b8cfd576b977f5b655be","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"718d04d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d? 200 41ms","method":"GET","requestID":"718d04d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":41,"status":200,"url":"/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"718cddc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/9728160b-bb68-4d50-a4e6-26316d27399b? 200 43ms","method":"GET","requestID":"718cddc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":43,"status":200,"url":"/devices/9728160b-bb68-4d50-a4e6-26316d27399b?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053"},"level":"info","message":"Building connection plan","requestID":"c4c8d013b390d6622746eb1453c73cf0"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"2af7d939-bebf-442f-b5f8-9227a2c43bbf"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"f887323b-3fd5-476f-a215-00e2b8947db6"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"7d61cfc0-9796-40a3-9bd7-cc0df4f35f2d"}]},"level":"info","message":"Built pairwise service configurations","requestID":"c4c8d013b390d6622746eb1453c73cf0"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:01.248923682Z"}]},"request_id":"046a0f12-aec7-4dcf-a7f6-8030b0498d8c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.630597} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"7193e2a0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"7193e2a0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"POST /rooms 201 1ms","method":"POST","requestID":"7193e2a0-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":1,"status":201,"url":"/rooms"} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"d036c18ac7b3b8cfd576b977f5b655be","responseTime":6,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c?id=48941887-1b0e-4633-87fa-e4f82c5cf035","ws://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c?id=b50eb54c-ea60-46bf-a097-925ccc7ae4d8"]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"c4c8d013b390d6622746eb1453c73cf0"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"719457d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d036c18ac7b3b8cfd576b977f5b655be"} gateway-1 | {"time_local":"18/Jun/2025:09:56:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d036c18ac7b3b8cfd576b977f5b655be"} device-1 | {"level":"info","message":"GET /devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d? 200 43ms","method":"GET","requestID":"d036c18ac7b3b8cfd576b977f5b655be","responseTime":43,"status":200,"url":"/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d?"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1049,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1049,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.665764,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"719457d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240562,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"719457d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"6008c096-56de-4a9b-acce-7090419b5254","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.6480305} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7d8ec148-b151-4e3f-91c9-bedd3060a9ec","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.6482432} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"719457d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"719457d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"719457d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/fb76359f-561d-4ebc-979a-ac0ffc871dcd'","requestID":"719457d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/fb76359f-561d-4ebc-979a-ac0ffc871dcd'","requestID":"719457d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"719457d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 50ms","method":"POST","requestID":"719457d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":50,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"719457d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fb76359f-561d-4ebc-979a-ac0ffc871dcd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fb76359f-561d-4ebc-979a-ac0ffc871dcd","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"719d3170-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"b50eb54c-ea60-46bf-a097-925ccc7ae4d8\" in room \"http://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c\"","requestID":"719d3170-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"719d3170-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"719d5880-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"48941887-1b0e-4633-87fa-e4f82c5cf035\" in room \"http://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c\"","requestID":"719d5880-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"719d5880-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c0767e7cb15ff6953058a9da0d70347e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 25ms","method":"GET","requestID":"c0767e7cb15ff6953058a9da0d70347e","responseTime":25,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"b50eb54c-ea60-46bf-a097-925ccc7ae4d8\" in room \"http://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"b50eb54c-ea60-46bf-a097-925ccc7ae4d8\" in room \"http://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"b50eb54c-ea60-46bf-a097-925ccc7ae4d8\" in room \"http://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"b50eb54c-ea60-46bf-a097-925ccc7ae4d8\" in room \"http://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"b50eb54c-ea60-46bf-a097-925ccc7ae4d8\" in room \"http://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"b50eb54c-ea60-46bf-a097-925ccc7ae4d8\" in room \"http://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"b50eb54c-ea60-46bf-a097-925ccc7ae4d8\" in room \"http://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"b50eb54c-ea60-46bf-a097-925ccc7ae4d8\" in room \"http://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c\""} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/fb76359f-561d-4ebc-979a-ac0ffc871dcd"}}},"level":"info","message":"received a callback","requestID":"c0767e7cb15ff6953058a9da0d70347e"} device-1 | {"data":{"peerconnection":"fb76359f-561d-4ebc-979a-ac0ffc871dcd","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 13ms","method":"POST","requestID":"c0767e7cb15ff6953058a9da0d70347e","responseTime":13,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch","requestID":"c0767e7cb15ff6953058a9da0d70347e"} device-1 | {"data":{"peerconnection":"fb76359f-561d-4ebc-979a-ac0ffc871dcd","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"c4c8d013b390d6622746eb1453c73cf0"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"71a8a320-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1050,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e1973861-3f7e-4f8c-8aee-4ae1a30ab063","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.7742295} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1050,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.488388,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"71a8a320-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"71a8a320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fb76359f-561d-4ebc-979a-ac0ffc871dcd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fb76359f-561d-4ebc-979a-ac0ffc871dcd","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"71a8a320-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/9728160b-bb68-4d50-a4e6-26316d27399b/signaling 200 12ms","method":"POST","requestID":"71a8a320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/9728160b-bb68-4d50-a4e6-26316d27399b/signaling"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2d76e3401f879a9a2a41f305bb353692","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2d76e3401f879a9a2a41f305bb353692","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"71aac600-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1051,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/fb76359f-561d-4ebc-979a-ac0ffc871dcd"}}},"level":"info","message":"received a callback","requestID":"2d76e3401f879a9a2a41f305bb353692"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0d849127-decf-461c-bd8f-f0874320d6d9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.7889776} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1051,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.720894,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"71aac600-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"71aac600-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"71abfe80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"71aac600-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d/signaling 200 34ms","method":"POST","requestID":"71aac600-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d/signaling"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1052,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffb76359f-561d-4ebc-979a-ac0ffc871dcd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e426b171-727a-41b8-86f6-a8b0e8cd1bf8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.8202949} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1052,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.438662,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fb76359f-561d-4ebc-979a-ac0ffc871dcd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"71abfe80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/fb76359f-561d-4ebc-979a-ac0ffc871dcd","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"71abfe80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"71abfe80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/fb76359f-561d-4ebc-979a-ac0ffc871dcd 200 31ms","method":"GET","requestID":"71abfe80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/peerconnections/fb76359f-561d-4ebc-979a-ac0ffc871dcd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA","level":"info","message":"auth send jwt","requestID":"ac75bb9a18e6f33068074609275f7ea3"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ac75bb9a18e6f33068074609275f7ea3","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053","requestID":"ac75bb9a18e6f33068074609275f7ea3"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1053,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1053,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.785523,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ac75bb9a18e6f33068074609275f7ea3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240562,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ac75bb9a18e6f33068074609275f7ea3","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 53ms","method":"POST","requestID":"2d76e3401f879a9a2a41f305bb353692","responseTime":53,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.058","http_referrer":"","http_user_agent":"node-fetch","requestID":"2d76e3401f879a9a2a41f305bb353692"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"71b35180-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053","requestID":"ac75bb9a18e6f33068074609275f7ea3"} gateway-1 | {"time_local":"18/Jun/2025:09:56:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053 HTTP/1.1","status": "200","body_bytes_sent":"1369","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ac75bb9a18e6f33068074609275f7ea3"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1054,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} experiment-1 | {"level":"info","message":"GET /experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053 200 37ms","method":"GET","requestID":"ac75bb9a18e6f33068074609275f7ea3","responseTime":37,"status":200,"url":"/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9b90ed59-c95c-474f-899a-2d074055677a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.8681624} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1054,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.444813,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA","level":"info","message":"auth send jwt","requestID":"eaafe6d0d717ffa6557fbeb735cb883f"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"71b35180-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"eaafe6d0d717ffa6557fbeb735cb883f","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"71b35180-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053","requestID":"eaafe6d0d717ffa6557fbeb735cb883f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"71b35180-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/9728160b-bb68-4d50-a4e6-26316d27399b/signaling 200 32ms","method":"POST","requestID":"71b35180-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/devices/9728160b-bb68-4d50-a4e6-26316d27399b/signaling"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1055,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1055,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.887835,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"eaafe6d0d717ffa6557fbeb735cb883f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240562,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"eaafe6d0d717ffa6557fbeb735cb883f","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"71b881a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1056,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a04ea68e-d16a-495f-a600-69ff0107b334","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.8784175} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053"},"level":"info","message":"Attempting to finish experiment","requestID":"eaafe6d0d717ffa6557fbeb735cb883f"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1056,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.679377,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"71b944f0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"71b881a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"71b881a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1057,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1057,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.639859,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"71b881a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d/signaling 200 8ms","method":"POST","requestID":"71b881a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d/signaling"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fb76359f-561d-4ebc-979a-ac0ffc871dcd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"71b944f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/fb76359f-561d-4ebc-979a-ac0ffc871dcd","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240562,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Mn0._UuegW0ZMjC-1U8q7aLicNNbVFPDRMDJKeb3EGLtsfA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"71b944f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:56:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c?id=48941887-1b0e-4633-87fa-e4f82c5cf035 HTTP/1.1","status": "101","body_bytes_sent":"0","request_time":"0.193","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"6017dce8d9e7297af14c65db9d90cddf"} gateway-1 | {"time_local":"18/Jun/2025:09:56:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c?id=b50eb54c-ea60-46bf-a097-925ccc7ae4d8 HTTP/1.1","status": "101","body_bytes_sent":"916","request_time":"0.193","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"25b581d790574ee8b9b3f5793f19d44b"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"48941887-1b0e-4633-87fa-e4f82c5cf035\" in room \"http://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"48941887-1b0e-4633-87fa-e4f82c5cf035\" from room \"http://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c\", code: 1006, reason: "} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"b50eb54c-ea60-46bf-a097-925ccc7ae4d8\" in room \"http://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"b50eb54c-ea60-46bf-a097-925ccc7ae4d8\" from room \"http://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c\", code: 1006, reason: "} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fb76359f-561d-4ebc-979a-ac0ffc871dcd' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/fb76359f-561d-4ebc-979a-ac0ffc871dcd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fb76359f-561d-4ebc-979a-ac0ffc871dcd","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e2dd97d35c920716f52c0681f3545317","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffb76359f-561d-4ebc-979a-ac0ffc871dcd': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffb76359f-561d-4ebc-979a-ac0ffc871dcd","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"f618682e-8c61-4efc-a249-8a11e94eee15","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.915769} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e2dd97d35c920716f52c0681f3545317","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"550e1fe9-bceb-44c8-8b38-8ca032a4e9a4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.9159079} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b4bef63c3b15404ff7a613cd8a8f00fd","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b4bef63c3b15404ff7a613cd8a8f00fd","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/fb76359f-561d-4ebc-979a-ac0ffc871dcd"}}},"level":"info","message":"received a callback","requestID":"e2dd97d35c920716f52c0681f3545317"} authorization-1 | {"level":"info","message":"POST /relations/update 200 30ms","method":"POST","requestID":"71b944f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/fb76359f-561d-4ebc-979a-ac0ffc871dcd"}}},"level":"info","message":"received a callback","requestID":"b4bef63c3b15404ff7a613cd8a8f00fd"} device-1 | {"data":{"peerconnection":"fb76359f-561d-4ebc-979a-ac0ffc871dcd","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"71b944f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/fb76359f-561d-4ebc-979a-ac0ffc871dcd 204 52ms","method":"DELETE","requestID":"71b944f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":52,"status":204,"url":"/peerconnections/fb76359f-561d-4ebc-979a-ac0ffc871dcd"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053"},"level":"info","message":"Successfully finished experiment","requestID":"eaafe6d0d717ffa6557fbeb735cb883f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"71c74eb0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1058,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9728160b-bb68-4d50-a4e6-26316d27399b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"85550e60-8efd-41fb-818a-0d2644fc8327","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.976128} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1058,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.928509,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"71c74eb0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"71c74eb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"71c74eb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/9728160b-bb68-4d50-a4e6-26316d27399b/signaling 200 9ms","method":"POST","requestID":"71c74eb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/9728160b-bb68-4d50-a4e6-26316d27399b/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2e2b541d-66da-4c61-8a7d-4f8849f9c053': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2e2b541d-66da-4c61-8a7d-4f8849f9c053","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"54f3f445-a8e6-4ed2-9a88-9baa858c9b38","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.9823146} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0e5f9160-4995-4d82-9cc2-6e992632d8d0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240562.9824736} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"71c8fc60-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"eaafe6d0d717ffa6557fbeb735cb883f","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1059,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:03Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e9f7bb7-810e-405e-b001-6a0baaa7052d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"955a0f8e-19aa-4910-9204-8de7d9424c09","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240563.0111136} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1059,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.183341,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"71c8fc60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"71c8fc60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"71c8fc60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d/signaling 200 33ms","method":"POST","requestID":"71c8fc60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053","requestID":"eaafe6d0d717ffa6557fbeb735cb883f"} gateway-1 | {"time_local":"18/Jun/2025:09:56:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.199","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"eaafe6d0d717ffa6557fbeb735cb883f"} experiment-1 | {"level":"info","message":"DELETE /experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053 204 197ms","method":"DELETE","requestID":"eaafe6d0d717ffa6557fbeb735cb883f","responseTime":197,"status":204,"url":"/experiments/2e2b541d-66da-4c61-8a7d-4f8849f9c053"} gateway-1 | {"time_local":"18/Jun/2025:09:56:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2005","request_time":"0.774","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"0b6d73acd20d1b5555ae80ff5356fbc8"} gateway-1 | {"time_local":"18/Jun/2025:09:56:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2008","request_time":"0.764","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"87e51c7870485650901430fc0d1db7cf"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 152ms","method":"POST","requestID":"e2dd97d35c920716f52c0681f3545317","responseTime":152,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.155","http_referrer":"","http_user_agent":"node-fetch","requestID":"e2dd97d35c920716f52c0681f3545317"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 151ms","method":"POST","requestID":"b4bef63c3b15404ff7a613cd8a8f00fd","responseTime":151,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.156","http_referrer":"","http_user_agent":"node-fetch","requestID":"b4bef63c3b15404ff7a613cd8a8f00fd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2M30.VJtQ1pADg4_fv2EGsTmqn1ZgRnYSQg_erTHeKtTQzb0","level":"info","message":"auth send jwt","requestID":"73e69823ea870da87f7a69e8085719ad"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"73e69823ea870da87f7a69e8085719ad","responseTime":4,"status":200,"url":"/auth"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/9728160b-bb68-4d50-a4e6-26316d27399b' closed"} device-1 | {"level":"info","message":"postDevices called","requestID":"73e69823ea870da87f7a69e8085719ad"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1060,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:03Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1060,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.985708,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:03Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"73e69823ea870da87f7a69e8085719ad","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240563,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2M30.VJtQ1pADg4_fv2EGsTmqn1ZgRnYSQg_erTHeKtTQzb0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"73e69823ea870da87f7a69e8085719ad","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/4e9f7bb7-810e-405e-b001-6a0baaa7052d' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"68213916-981b-4785-a6de-1576574d7d3d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240563.0981357} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"73e69823ea870da87f7a69e8085719ad","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"471b2a4f-dcee-44e8-9422-3379c2678a2f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240563.1034276} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"73e69823ea870da87f7a69e8085719ad","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"4dc1f3c6-dbc3-468a-8ce4-28768ac81d15","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240563.1134763} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f1d3b532-0634-4ccb-b502-2f9529afb749","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240563.1137416} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"73e69823ea870da87f7a69e8085719ad","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:03.113447491Z"}]},"request_id":"a91fd906-3c4e-402c-b2b6-8faa034408bf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240563.1179476} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"73e69823ea870da87f7a69e8085719ad","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"73e69823ea870da87f7a69e8085719ad"} gateway-1 | {"time_local":"18/Jun/2025:09:56:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"73e69823ea870da87f7a69e8085719ad"} device-1 | {"level":"info","message":"POST /devices? 201 45ms","method":"POST","requestID":"73e69823ea870da87f7a69e8085719ad","responseTime":45,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2M30.VJtQ1pADg4_fv2EGsTmqn1ZgRnYSQg_erTHeKtTQzb0","level":"info","message":"auth send jwt","requestID":"c68b1a8981a102414db27269ee71dd50"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c68b1a8981a102414db27269ee71dd50","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"c68b1a8981a102414db27269ee71dd50"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1061,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:03Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1061,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.759488,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:03Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c68b1a8981a102414db27269ee71dd50","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240563,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2M30.VJtQ1pADg4_fv2EGsTmqn1ZgRnYSQg_erTHeKtTQzb0"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"c68b1a8981a102414db27269ee71dd50","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"dd3705db-9e3f-40d9-ba47-84e88a025e9a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240563.1660695} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c68b1a8981a102414db27269ee71dd50","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4a4c0a30-38fd-4337-8783-4c5e6a0e524a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240563.1711795} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"c68b1a8981a102414db27269ee71dd50","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"010c2edf-5100-43f3-881f-f3f882d7b96e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240563.2056212} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"db8a8393-5ca9-4c78-8d83-46fcf4ae6119","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240563.20584} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"c68b1a8981a102414db27269ee71dd50","responseTime":37,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:03.205591439Z"}]},"request_id":"edeee16b-9392-4d7d-b794-4ae8a7e8f5d2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240563.2092912} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c68b1a8981a102414db27269ee71dd50","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"c68b1a8981a102414db27269ee71dd50"} gateway-1 | {"time_local":"18/Jun/2025:09:56:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.090","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c68b1a8981a102414db27269ee71dd50"} device-1 | {"level":"info","message":"POST /devices? 201 86ms","method":"POST","requestID":"c68b1a8981a102414db27269ee71dd50","responseTime":86,"status":201,"url":"/devices?"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"f625492b-d45b-4f9c-948c-8183139cf407\" in room \"http://localhost/rooms/0bce82a2-dc24-4b78-b7d3-c9dd3d2771d8\"","requestID":"6f427890-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"8ca98ca7-28ae-459b-b18b-cd39b8943666\" in room \"http://localhost/rooms/0bce82a2-dc24-4b78-b7d3-c9dd3d2771d8\"","requestID":"6f429fa0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"c6205ade-6899-4cf4-bbed-6c6f2067e811\" in room \"http://localhost/rooms/5ad2d2ed-09d9-4439-ba1d-52ebc3ec2858\" did not answer hearbeat check, closing connection","requestID":"6d4a2b00-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"4e5fc686-217d-4192-95b8-48614386cc3b\" in room \"http://localhost/rooms/5ad2d2ed-09d9-4439-ba1d-52ebc3ec2858\" did not answer hearbeat check, closing connection","requestID":"6d4a7920-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"67d63421d0192f472dac428eb01e2118","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"67d63421d0192f472dac428eb01e2118","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/553f9475-d142-4dba-9e12-04c20f1833f2/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"67d63421d0192f472dac428eb01e2118"} device-1 | {"level":"info","message":"OPTIONS /devices/553f9475-d142-4dba-9e12-04c20f1833f2/websocket 200 2ms","method":"OPTIONS","requestID":"67d63421d0192f472dac428eb01e2118","responseTime":2,"status":200,"url":"/devices/553f9475-d142-4dba-9e12-04c20f1833f2/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w","level":"info","message":"auth send jwt","requestID":"8dc30cb565b2e847136a99789dd78902"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8dc30cb565b2e847136a99789dd78902","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"8dc30cb565b2e847136a99789dd78902"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1062,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1062,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.842041,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8dc30cb565b2e847136a99789dd78902","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240565,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"8dc30cb565b2e847136a99789dd78902","responseTime":6,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"22328cd19c588e508df3aab6033649bb","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"22328cd19c588e508df3aab6033649bb","responseTime":0,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.007","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"22328cd19c588e508df3aab6033649bb"} device-1 | {"level":"info","message":"OPTIONS /devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b/websocket 200 0ms","method":"OPTIONS","requestID":"22328cd19c588e508df3aab6033649bb","responseTime":0,"status":200,"url":"/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w","level":"info","message":"auth send jwt","requestID":"2a542273a2e1381654ac3ab3864c05a8"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2a542273a2e1381654ac3ab3864c05a8","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"8dc30cb565b2e847136a99789dd78902"} gateway-1 | {"time_local":"18/Jun/2025:09:56:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/553f9475-d142-4dba-9e12-04c20f1833f2/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.052","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8dc30cb565b2e847136a99789dd78902"} device-1 | {"level":"info","message":"POST /devices/553f9475-d142-4dba-9e12-04c20f1833f2/websocket 200 46ms","method":"POST","requestID":"8dc30cb565b2e847136a99789dd78902","responseTime":46,"status":200,"url":"/devices/553f9475-d142-4dba-9e12-04c20f1833f2/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"2a542273a2e1381654ac3ab3864c05a8"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1063,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1063,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.705024,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2a542273a2e1381654ac3ab3864c05a8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240565,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2a542273a2e1381654ac3ab3864c05a8","responseTime":3,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:56:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.022","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2a542273a2e1381654ac3ab3864c05a8"} device-1 | {"level":"info","message":"device 'http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"2a542273a2e1381654ac3ab3864c05a8"} device-1 | {"level":"info","message":"POST /devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b/websocket 200 17ms","method":"POST","requestID":"2a542273a2e1381654ac3ab3864c05a8","responseTime":17,"status":200,"url":"/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b4c6fd5ac1dd1d9cda24511946c52ea1","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b4c6fd5ac1dd1d9cda24511946c52ea1","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/553f9475-d142-4dba-9e12-04c20f1833f2? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b4c6fd5ac1dd1d9cda24511946c52ea1"} device-1 | {"level":"info","message":"OPTIONS /devices/553f9475-d142-4dba-9e12-04c20f1833f2? 200 1ms","method":"OPTIONS","requestID":"b4c6fd5ac1dd1d9cda24511946c52ea1","responseTime":1,"status":200,"url":"/devices/553f9475-d142-4dba-9e12-04c20f1833f2?"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w","level":"info","message":"auth send jwt","requestID":"459bb3164c99975e6248547e535b4b9f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"459bb3164c99975e6248547e535b4b9f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"459bb3164c99975e6248547e535b4b9f"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1064,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1064,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.657639,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"459bb3164c99975e6248547e535b4b9f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240565,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"459bb3164c99975e6248547e535b4b9f","responseTime":2,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8e4c933749a6c0ddf3c76832bc1d50c6","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} gateway-1 | {"time_local":"18/Jun/2025:09:56:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8e4c933749a6c0ddf3c76832bc1d50c6"} device-1 | {"level":"info","message":"OPTIONS /devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b? 200 0ms","method":"OPTIONS","requestID":"8e4c933749a6c0ddf3c76832bc1d50c6","responseTime":0,"status":200,"url":"/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b?"} authentication-1 | {"level":"info","message":"GET /auth 200 25ms","method":"GET","requestID":"8e4c933749a6c0ddf3c76832bc1d50c6","responseTime":25,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:03.205591439Z"}]},"request_id":"e559cb8f-8155-41a1-8b55-7604111ec3eb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.6505792} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"459bb3164c99975e6248547e535b4b9f","responseTime":28,"status":200,"url":"/relations/query"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w","level":"info","message":"auth send jwt","requestID":"6ff45fcc4f9d659ba101f06ffdaee58d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6ff45fcc4f9d659ba101f06ffdaee58d","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"6ff45fcc4f9d659ba101f06ffdaee58d"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"67fe6d60-d858-4ec5-9ddd-c483a90a66b3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.6563826} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"459bb3164c99975e6248547e535b4b9f","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1065,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1065,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.702429,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6ff45fcc4f9d659ba101f06ffdaee58d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240565,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6ff45fcc4f9d659ba101f06ffdaee58d","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:03.205591439Z"}]},"request_id":"4215e5f3-8cc7-4e27-87e8-f43d0592f478","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.6672475} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"459bb3164c99975e6248547e535b4b9f","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:03.113447491Z"}]},"request_id":"39ee762b-d049-487c-ac8b-8600954aac9b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.667838} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"459bb3164c99975e6248547e535b4b9f"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6ff45fcc4f9d659ba101f06ffdaee58d","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"PATCH /devices/553f9475-d142-4dba-9e12-04c20f1833f2? 200 51ms","method":"PATCH","requestID":"459bb3164c99975e6248547e535b4b9f","responseTime":51,"status":200,"url":"/devices/553f9475-d142-4dba-9e12-04c20f1833f2?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/553f9475-d142-4dba-9e12-04c20f1833f2? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.055","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"459bb3164c99975e6248547e535b4b9f"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"15e99b76-de58-4057-8919-588fbb5d9a20","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.673263} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"6ff45fcc4f9d659ba101f06ffdaee58d","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:03.113447491Z"}]},"request_id":"49ead269-a698-40fb-9327-97913727688f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.708618} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6ff45fcc4f9d659ba101f06ffdaee58d","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"6ff45fcc4f9d659ba101f06ffdaee58d"} device-1 | {"level":"info","message":"PATCH /devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b? 200 55ms","method":"PATCH","requestID":"6ff45fcc4f9d659ba101f06ffdaee58d","responseTime":55,"status":200,"url":"/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.060","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6ff45fcc4f9d659ba101f06ffdaee58d"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"e7c36b5a-2018-4737-ac99-b3c191dbcc30\" in room \"http://localhost/rooms/3f60bc57-64fe-47e7-90d6-c121a35ebc06\"","requestID":"706eeaa0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"15cd1590-6b0c-403c-86e2-8a75bcc1f72a\" in room \"http://localhost/rooms/3f60bc57-64fe-47e7-90d6-c121a35ebc06\"","requestID":"706f11b0-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w","level":"info","message":"auth send jwt","requestID":"00de6701a6666352bbbd6dca487580e0"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"00de6701a6666352bbbd6dca487580e0","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"00de6701a6666352bbbd6dca487580e0"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1066,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1066,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.710114,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"00de6701a6666352bbbd6dca487580e0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240565,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"00de6701a6666352bbbd6dca487580e0","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:03.113447491Z"}]},"request_id":"abe7f245-91f2-49ba-a5cc-241b587c9240","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.7492208} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"00de6701a6666352bbbd6dca487580e0","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"00de6701a6666352bbbd6dca487580e0"} gateway-1 | {"time_local":"18/Jun/2025:09:56:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"00de6701a6666352bbbd6dca487580e0"} device-1 | {"level":"info","message":"GET /devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b? 200 34ms","method":"GET","requestID":"00de6701a6666352bbbd6dca487580e0","responseTime":34,"status":200,"url":"/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w","level":"info","message":"auth send jwt","requestID":"3d5d3a7029dd64c8a9500701ba077d78"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3d5d3a7029dd64c8a9500701ba077d78","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3d5d3a7029dd64c8a9500701ba077d78"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1067,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1067,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.699011,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3d5d3a7029dd64c8a9500701ba077d78","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240565,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"3d5d3a7029dd64c8a9500701ba077d78","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:03.205591439Z"}]},"request_id":"135d1832-f72c-4057-839f-89825c57b940","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.7625465} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3d5d3a7029dd64c8a9500701ba077d78","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3d5d3a7029dd64c8a9500701ba077d78"} gateway-1 | {"time_local":"18/Jun/2025:09:56:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/553f9475-d142-4dba-9e12-04c20f1833f2? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3d5d3a7029dd64c8a9500701ba077d78"} device-1 | {"level":"info","message":"GET /devices/553f9475-d142-4dba-9e12-04c20f1833f2? 200 9ms","method":"GET","requestID":"3d5d3a7029dd64c8a9500701ba077d78","responseTime":9,"status":200,"url":"/devices/553f9475-d142-4dba-9e12-04c20f1833f2?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w","level":"info","message":"auth send jwt","requestID":"030314965ba6dcdda4cbb3ba0542a56e"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"030314965ba6dcdda4cbb3ba0542a56e","responseTime":26,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"030314965ba6dcdda4cbb3ba0542a56e"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1068,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1068,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.64502,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"030314965ba6dcdda4cbb3ba0542a56e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240565,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"030314965ba6dcdda4cbb3ba0542a56e","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007"},"level":"info","message":"Attempting to run experiment","requestID":"030314965ba6dcdda4cbb3ba0542a56e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007"},"level":"info","message":"Attempting to book experiment","requestID":"030314965ba6dcdda4cbb3ba0542a56e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007"},"level":"info","message":"Successfully booked experiment","requestID":"030314965ba6dcdda4cbb3ba0542a56e"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"737dff60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"737e2670-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1069,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1070,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1069,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.89143,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"737dff60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240565,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"737dff60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1070,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.68488,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"737e2670-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240565,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"737e2670-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:03.113447491Z"}]},"request_id":"ee4af5e9-79fc-4cf6-9cbc-d9a4f2f730a4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.8536975} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"737dff60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:03.205591439Z"}]},"request_id":"758a6644-ee7f-410b-a8d5-c26db636175a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.854384} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"737e2670-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"737dff60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b? 200 11ms","method":"GET","requestID":"737dff60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"737e2670-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/553f9475-d142-4dba-9e12-04c20f1833f2? 200 11ms","method":"GET","requestID":"737e2670-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/553f9475-d142-4dba-9e12-04c20f1833f2?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007"},"level":"info","message":"Setting up experiment","requestID":"030314965ba6dcdda4cbb3ba0542a56e"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"030314965ba6dcdda4cbb3ba0542a56e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"030314965ba6dcdda4cbb3ba0542a56e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007"},"level":"info","message":"Successfully locked booking for experiment","requestID":"030314965ba6dcdda4cbb3ba0542a56e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007"},"level":"info","message":"Successfully set up experiment","requestID":"030314965ba6dcdda4cbb3ba0542a56e"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"73870010-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"73872720-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007"},"level":"info","message":"Successfully running experiment","requestID":"030314965ba6dcdda4cbb3ba0542a56e"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1071,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1071,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.663252,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1072,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"73870010-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240565,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"73870010-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1072,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.568468,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"73872720-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240565,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"73872720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:03.113447491Z"}]},"request_id":"9f636f08-9c55-4bde-8160-e5a7c128448f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.9138696} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"73870010-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:03.205591439Z"}]},"request_id":"12d386f2-0faa-4ebd-a090-a290cdf45c0d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.9144719} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"73872720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"73870010-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b? 200 13ms","method":"GET","requestID":"73870010-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"73872720-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/553f9475-d142-4dba-9e12-04c20f1833f2? 200 12ms","method":"GET","requestID":"73872720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/553f9475-d142-4dba-9e12-04c20f1833f2?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"73897110-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1073,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff2465e54-6c3f-4370-bb82-18647b7bd007#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff2465e54-6c3f-4370-bb82-18647b7bd007","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"f6a44a23-c5f8-49a7-ae0d-530df5171e01","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.925362} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b0433493-366f-487d-bb2a-989339431e57","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.9255872} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8575cf98-1f30-417f-b839-c393d76b0069","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.925809} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","method":"POST","requestID":"030314965ba6dcdda4cbb3ba0542a56e","responseTime":17,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1073,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.705119,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"73897110-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"73897110-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"73897110-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b/signaling 200 9ms","method":"POST","requestID":"73897110-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"030314965ba6dcdda4cbb3ba0542a56e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"738b6ce0-4c2a-11f0-a085-a5c7b3a0c4e5"} gateway-1 | {"time_local":"18/Jun/2025:09:56:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1212","request_time":"0.167","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"030314965ba6dcdda4cbb3ba0542a56e"} experiment-1 | {"level":"info","message":"POST /experiments? 201 140ms","method":"POST","requestID":"030314965ba6dcdda4cbb3ba0542a56e","responseTime":140,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1074,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:05Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w","level":"info","message":"auth send jwt","requestID":"0c8e7221c9e745f7566d8edd9a287d4a"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b854f68a-5422-47f1-9344-e85e276b276a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.938268} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0c8e7221c9e745f7566d8edd9a287d4a","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1074,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.475759,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:05Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0c8e7221c9e745f7566d8edd9a287d4a"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"738b6ce0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"738b6ce0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1075,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:05Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"738b6ce0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1075,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.665503,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:05Z"} device-1 | {"level":"info","message":"POST /devices/553f9475-d142-4dba-9e12-04c20f1833f2/signaling 200 8ms","method":"POST","requestID":"738b6ce0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/553f9475-d142-4dba-9e12-04c20f1833f2/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0c8e7221c9e745f7566d8edd9a287d4a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240565,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"030314965ba6dcdda4cbb3ba0542a56e"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0c8e7221c9e745f7566d8edd9a287d4a","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"738cf380-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"738d1a90-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:03.113447491Z"}]},"request_id":"22c0e3eb-9f3f-45c6-b734-c05283733dd4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.9460568} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"0c8e7221c9e745f7566d8edd9a287d4a","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1076,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1076,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.597087,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1077,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1077,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.599763,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"738cf380-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240565,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"738cf380-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"738d1a90-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240565,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"738d1a90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0c8e7221c9e745f7566d8edd9a287d4a"} gateway-1 | {"time_local":"18/Jun/2025:09:56:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0c8e7221c9e745f7566d8edd9a287d4a"} device-1 | {"level":"info","message":"GET /devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b? 200 13ms","method":"GET","requestID":"0c8e7221c9e745f7566d8edd9a287d4a","responseTime":14,"status":200,"url":"/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w","level":"info","message":"auth send jwt","requestID":"5917e6c6586409b852cbf977dbf8553a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5917e6c6586409b852cbf977dbf8553a","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:03.113447491Z"}]},"request_id":"395b92ba-c9cf-4e64-9ed1-5b22b99d62c2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.9550653} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5917e6c6586409b852cbf977dbf8553a"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"738cf380-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:03.205591439Z"}]},"request_id":"6cef83b7-97e3-4c1c-9448-60978baca032","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.9574308} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"738d1a90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1078,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:05Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1078,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.014587,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:05Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"738cf380-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b? 200 18ms","method":"GET","requestID":"738cf380-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":18,"status":200,"url":"/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b?"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5917e6c6586409b852cbf977dbf8553a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240565,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"738d1a90-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5917e6c6586409b852cbf977dbf8553a","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"GET /devices/553f9475-d142-4dba-9e12-04c20f1833f2? 200 18ms","method":"GET","requestID":"738d1a90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":18,"status":200,"url":"/devices/553f9475-d142-4dba-9e12-04c20f1833f2?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007"},"level":"info","message":"Building connection plan","requestID":"030314965ba6dcdda4cbb3ba0542a56e"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"14e30b3f-d5d0-4a98-84ad-ba306be4c654"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"e51b0027-0f41-4576-8b05-5bed8f411e31"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"5fcf5176-a865-41b8-9221-0317cbe7982c"}]},"level":"info","message":"Built pairwise service configurations","requestID":"030314965ba6dcdda4cbb3ba0542a56e"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"030314965ba6dcdda4cbb3ba0542a56e"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"739075f0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:03.205591439Z"}]},"request_id":"7894dd44-5096-4dc4-85ff-c6073590a199","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.9671383} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"5917e6c6586409b852cbf977dbf8553a","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1079,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:05Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5917e6c6586409b852cbf977dbf8553a"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1079,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.648838,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:05Z"} gateway-1 | {"time_local":"18/Jun/2025:09:56:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/553f9475-d142-4dba-9e12-04c20f1833f2? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5917e6c6586409b852cbf977dbf8553a"} device-1 | {"level":"info","message":"GET /devices/553f9475-d142-4dba-9e12-04c20f1833f2? 200 16ms","method":"GET","requestID":"5917e6c6586409b852cbf977dbf8553a","responseTime":16,"status":200,"url":"/devices/553f9475-d142-4dba-9e12-04c20f1833f2?"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"739075f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240565,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2NX0.XNLoS526Rf2hPtoLWLVh-r-TqdATyYF9LG_KA7a30_w"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"739075f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"93bd07b8-48bb-43b4-82fc-b95944ef7cf3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.9803894} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cebb654f-4d44-462f-a418-506d79282fe1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240565.9806473} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"739075f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"739075f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"739075f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744'","requestID":"739075f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744'","requestID":"739075f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"739075f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 24ms","method":"POST","requestID":"739075f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":24,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"739075f0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"030314965ba6dcdda4cbb3ba0542a56e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7397f000-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1080,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"24f41dba-2108-4578-b079-854a9648774c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.0200682} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1080,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.417286,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7397f000-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"7397f000-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7397f000-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b/signaling 200 7ms","method":"POST","requestID":"7397f000-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"73994f90-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1081,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1d0401fe-bc45-46f0-bf4c-3f56bbf343b1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.0291376} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1081,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.334444,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"73994f90-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"73994f90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"73994f90-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/553f9475-d142-4dba-9e12-04c20f1833f2/signaling 200 7ms","method":"POST","requestID":"73994f90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/devices/553f9475-d142-4dba-9e12-04c20f1833f2/signaling"} device-1 | {"device":"d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"device":"553f9475-d142-4dba-9e12-04c20f1833f2","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"553f9475-d142-4dba-9e12-04c20f1833f2","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"content":{"sdp":"v=0\r\no=- 5434175577593252199 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:p7lh\r\na=ice-pwd:dsxxfhELPQlbCcFCencS7U/t\r\na=ice-options:trickle\r\na=fingerprint:sha-256 26:BC:9B:BD:D4:0A:20:D8:4E:7A:FB:DE:0E:35:B4:14:29:71:5D:97:DA:71:F4:4C:EC:98:0A:21:49:68:2F:52\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"553f9475-d142-4dba-9e12-04c20f1833f2","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"content":{"sdp":"v=0\r\no=- 5359679654115044146 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:Pugc\r\na=ice-pwd:Ghq+5BgB1lPnot9RjcCEek2e\r\na=ice-options:trickle\r\na=fingerprint:sha-256 C5:AC:3F:21:19:D8:D5:80:2F:19:6A:DF:D6:47:5D:A1:36:BB:98:90:55:FE:31:1C:4C:3A:AB:91:C2:69:F3:26\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:1529588906 1 udp 2113937151 1dfd0ded-ac46-4ea4-8930-c6443bbc9bc0.local 34071 typ host generation 0 ufrag Pugc network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:3355446713 1 udp 1677729535 141.24.211.56 34071 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag Pugc network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b'"} device-1 | {"content":{"candidate":"candidate:924924918 1 udp 2113937151 986d5887-0613-4cbd-97b8-cad9f2b527b2.local 34246 typ host generation 0 ufrag p7lh network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"553f9475-d142-4dba-9e12-04c20f1833f2","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:3003928969 1 udp 1677729535 141.24.211.56 34246 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag p7lh network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"553f9475-d142-4dba-9e12-04c20f1833f2","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2'"} device-1 | {"device":"553f9475-d142-4dba-9e12-04c20f1833f2","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d29a7178-70b4-4351-9b14-2ec01b38d744","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"553f9475-d142-4dba-9e12-04c20f1833f2","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"571b18682bc060f961d59417342338ea","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744"}}},"level":"info","message":"received a callback","requestID":"571b18682bc060f961d59417342338ea"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"571b18682bc060f961d59417342338ea","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"571b18682bc060f961d59417342338ea","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"571b18682bc060f961d59417342338ea"} device-1 | {"device":"553f9475-d142-4dba-9e12-04c20f1833f2","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","deviceName":"JS Device 1","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"d29a7178-70b4-4351-9b14-2ec01b38d744","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"d29a7178-70b4-4351-9b14-2ec01b38d744","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d29a7178-70b4-4351-9b14-2ec01b38d744","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"3bd688bd81ed0a3cbb36cf218064d8f1","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3bd688bd81ed0a3cbb36cf218064d8f1","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744"}}},"level":"info","message":"received a callback","requestID":"3bd688bd81ed0a3cbb36cf218064d8f1"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"73ad4cc0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1082,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd29a7178-70b4-4351-9b14-2ec01b38d744","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5fcc543d-8ed2-4fec-9e58-e0573863f0ae","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.18033} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1082,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.232167,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"73ad4cc0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"73ad4cc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"73ad4cc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744 200 27ms","method":"GET","requestID":"73ad4cc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 43ms","method":"POST","requestID":"3bd688bd81ed0a3cbb36cf218064d8f1","responseTime":43,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch","requestID":"3bd688bd81ed0a3cbb36cf218064d8f1"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"73b36740-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1083,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f6c41725-84b7-4e39-9be9-4375784a1992","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.2248402} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1083,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.183383,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"73b36740-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"73b36740-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"73b36740-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b/signaling 200 33ms","method":"POST","requestID":"73b36740-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"73b8be70-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Nn0.tAZvXlV4HVMIrDBMKKWwcAhJeois-voy8vlZxXW6qa4","level":"info","message":"auth send jwt","requestID":"ff011e21c0f8785419d037655bb260c8"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ff011e21c0f8785419d037655bb260c8","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/f2465e54-6c3f-4370-bb82-18647b7bd007","requestID":"ff011e21c0f8785419d037655bb260c8"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1084,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1085,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"02bd4086-1786-4bb9-9352-e48b556305ec","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.2355855} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1085,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.667254,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ff011e21c0f8785419d037655bb260c8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240566,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Nn0.tAZvXlV4HVMIrDBMKKWwcAhJeois-voy8vlZxXW6qa4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ff011e21c0f8785419d037655bb260c8","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1084,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.253202,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"73b8be70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"73b8be70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"73b8be70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/553f9475-d142-4dba-9e12-04c20f1833f2/signaling 200 9ms","method":"POST","requestID":"73b8be70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/553f9475-d142-4dba-9e12-04c20f1833f2/signaling"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/f2465e54-6c3f-4370-bb82-18647b7bd007","requestID":"ff011e21c0f8785419d037655bb260c8"} gateway-1 | {"time_local":"18/Jun/2025:09:56:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/f2465e54-6c3f-4370-bb82-18647b7bd007 HTTP/1.1","status": "200","body_bytes_sent":"1285","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ff011e21c0f8785419d037655bb260c8"} experiment-1 | {"level":"info","message":"GET /experiments/f2465e54-6c3f-4370-bb82-18647b7bd007 200 9ms","method":"GET","requestID":"ff011e21c0f8785419d037655bb260c8","responseTime":9,"status":200,"url":"/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Nn0.tAZvXlV4HVMIrDBMKKWwcAhJeois-voy8vlZxXW6qa4","level":"info","message":"auth send jwt","requestID":"24dd260bb75a4dc72a69bedf3160472d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"24dd260bb75a4dc72a69bedf3160472d","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/f2465e54-6c3f-4370-bb82-18647b7bd007","requestID":"24dd260bb75a4dc72a69bedf3160472d"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1086,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1086,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.667045,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"24dd260bb75a4dc72a69bedf3160472d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240566,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Nn0.tAZvXlV4HVMIrDBMKKWwcAhJeois-voy8vlZxXW6qa4"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"24dd260bb75a4dc72a69bedf3160472d","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007"},"level":"info","message":"Attempting to finish experiment","requestID":"24dd260bb75a4dc72a69bedf3160472d"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"73bfc350-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1087,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1087,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.633124,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"73bfc350-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240566,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Nn0.tAZvXlV4HVMIrDBMKKWwcAhJeois-voy8vlZxXW6qa4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"73bfc350-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744","device":"d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744","device":"553f9475-d142-4dba-9e12-04c20f1833f2","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d29a7178-70b4-4351-9b14-2ec01b38d744","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd29a7178-70b4-4351-9b14-2ec01b38d744': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd29a7178-70b4-4351-9b14-2ec01b38d744","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"031809a1-3f87-49b1-acf8-f654cbcf7827","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.2919047} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8b940791ed8a04c9ab50d856036076fb","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8b940791ed8a04c9ab50d856036076fb","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e2e09923-6173-443f-86a8-768799c9afe7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.292281} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"03dfdddf8e292048184c866819efb838","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"03dfdddf8e292048184c866819efb838","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"73bfc350-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744"}}},"level":"info","message":"received a callback","requestID":"8b940791ed8a04c9ab50d856036076fb"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744"}}},"level":"info","message":"received a callback","requestID":"03dfdddf8e292048184c866819efb838"} device-1 | {"data":{"peerconnection":"d29a7178-70b4-4351-9b14-2ec01b38d744","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"73bfc350-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744 204 61ms","method":"DELETE","requestID":"73bfc350-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":61,"status":204,"url":"/peerconnections/d29a7178-70b4-4351-9b14-2ec01b38d744"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007"},"level":"info","message":"Successfully finished experiment","requestID":"24dd260bb75a4dc72a69bedf3160472d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"73ceb770-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1088,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4fe4c482-762b-4582-bf15-ed126e4fcfa8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.3798833} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1088,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.280982,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"73ceb770-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"73ceb770-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"73ceb770-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b/signaling 200 8ms","method":"POST","requestID":"73ceb770-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"73d06520-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff2465e54-6c3f-4370-bb82-18647b7bd007': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff2465e54-6c3f-4370-bb82-18647b7bd007","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"7e638aa5-058c-420d-a515-f05be77d7b89","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.3869472} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"78f237fd-d7c2-41a3-a935-dd2a65fb79c5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.3870997} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"24dd260bb75a4dc72a69bedf3160472d","responseTime":15,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1089,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F553f9475-d142-4dba-9e12-04c20f1833f2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"09ea7f9c-e8a0-4392-b738-c6fd5bf47088","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.3908353} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1089,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.463788,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"73d06520-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"73d06520-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/553f9475-d142-4dba-9e12-04c20f1833f2/signaling 200 13ms","method":"POST","requestID":"73d06520-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/553f9475-d142-4dba-9e12-04c20f1833f2/signaling"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","method":"POST","requestID":"73d06520-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/f2465e54-6c3f-4370-bb82-18647b7bd007","requestID":"24dd260bb75a4dc72a69bedf3160472d"} gateway-1 | {"time_local":"18/Jun/2025:09:56:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/f2465e54-6c3f-4370-bb82-18647b7bd007 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.221","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"24dd260bb75a4dc72a69bedf3160472d"} experiment-1 | {"level":"info","message":"DELETE /experiments/f2465e54-6c3f-4370-bb82-18647b7bd007 204 218ms","method":"DELETE","requestID":"24dd260bb75a4dc72a69bedf3160472d","responseTime":218,"status":204,"url":"/experiments/f2465e54-6c3f-4370-bb82-18647b7bd007"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 173ms","method":"POST","requestID":"8b940791ed8a04c9ab50d856036076fb","responseTime":173,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.175","http_referrer":"","http_user_agent":"node-fetch","requestID":"8b940791ed8a04c9ab50d856036076fb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 172ms","method":"POST","requestID":"03dfdddf8e292048184c866819efb838","responseTime":172,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.175","http_referrer":"","http_user_agent":"node-fetch","requestID":"03dfdddf8e292048184c866819efb838"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Nn0.tAZvXlV4HVMIrDBMKKWwcAhJeois-voy8vlZxXW6qa4","level":"info","message":"auth send jwt","requestID":"9e67da918b15e61f7fcba8f7aaeb6633"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9e67da918b15e61f7fcba8f7aaeb6633","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"9e67da918b15e61f7fcba8f7aaeb6633"} gateway-1 | {"time_local":"18/Jun/2025:09:56:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3208","request_time":"0.867","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"93843d6c1c2d3a57b3621a899fcf97d7"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1090,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1090,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.880503,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9e67da918b15e61f7fcba8f7aaeb6633","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240566,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Nn0.tAZvXlV4HVMIrDBMKKWwcAhJeois-voy8vlZxXW6qa4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"9e67da918b15e61f7fcba8f7aaeb6633","responseTime":4,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:56:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3207","request_time":"0.913","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"cdf9a9b237cef582e3d81488304e2c15"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d9d91c84-83a4-49f3-a7c2-0cb7fcd24a3b' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0fd16c4c-989c-48a2-9ee8-02cffd91c6a5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.4973984} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","method":"POST","requestID":"9e67da918b15e61f7fcba8f7aaeb6633","responseTime":7,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9ce5536a-5a31-41e9-9449-e0d73fe65aea","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.5006077} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"9e67da918b15e61f7fcba8f7aaeb6633","responseTime":3,"status":200,"url":"/relations/update"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/553f9475-d142-4dba-9e12-04c20f1833f2' closed"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"043d7235-7aa7-4f80-b4c5-23bd18167cbf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.525807} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3025c805-56e3-4f1a-8785-ad27b6c82cc8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.5259764} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"9e67da918b15e61f7fcba8f7aaeb6633","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:06.525778408Z"}]},"request_id":"534b7ec1-facf-4543-b500-ae9f96eccfd6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.5294518} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"9e67da918b15e61f7fcba8f7aaeb6633","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"9e67da918b15e61f7fcba8f7aaeb6633"} device-1 | {"level":"info","message":"POST /devices? 201 61ms","method":"POST","requestID":"9e67da918b15e61f7fcba8f7aaeb6633","responseTime":61,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.066","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9e67da918b15e61f7fcba8f7aaeb6633"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Nn0.tAZvXlV4HVMIrDBMKKWwcAhJeois-voy8vlZxXW6qa4","level":"info","message":"auth send jwt","requestID":"db1bc6ffb79573021c9abcf87e44c946"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"db1bc6ffb79573021c9abcf87e44c946","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"db1bc6ffb79573021c9abcf87e44c946"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1091,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1091,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.75899,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"db1bc6ffb79573021c9abcf87e44c946","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240566,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2Nn0.tAZvXlV4HVMIrDBMKKWwcAhJeois-voy8vlZxXW6qa4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"db1bc6ffb79573021c9abcf87e44c946","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a1b65a80-3fc7-4e55-b7ab-ea497f978954","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.5759254} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"db1bc6ffb79573021c9abcf87e44c946","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"118c5a36-9671-42bb-ac1c-602e020189ee","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.579617} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"db1bc6ffb79573021c9abcf87e44c946","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"cb3016cc-9465-42aa-98dd-272f6a7a3987","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.6155102} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b3378caf-4fa7-49f8-810b-6a844ffdbe67","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.6156292} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"db1bc6ffb79573021c9abcf87e44c946","responseTime":37,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:06.615480469Z"}]},"request_id":"2b15d0e7-f8ec-4bdc-af43-9bc601c7a350","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240566.6186857} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"db1bc6ffb79573021c9abcf87e44c946","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"db1bc6ffb79573021c9abcf87e44c946"} gateway-1 | {"time_local":"18/Jun/2025:09:56:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.088","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"db1bc6ffb79573021c9abcf87e44c946"} device-1 | {"level":"info","message":"POST /devices? 201 84ms","method":"POST","requestID":"db1bc6ffb79573021c9abcf87e44c946","responseTime":84,"status":201,"url":"/devices?"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"b50eb54c-ea60-46bf-a097-925ccc7ae4d8\" in room \"http://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c\"","requestID":"719d3170-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"48941887-1b0e-4633-87fa-e4f82c5cf035\" in room \"http://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c\"","requestID":"719d5880-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"f625492b-d45b-4f9c-948c-8183139cf407\" in room \"http://localhost/rooms/0bce82a2-dc24-4b78-b7d3-c9dd3d2771d8\" did not answer hearbeat check, closing connection","requestID":"6f427890-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"8ca98ca7-28ae-459b-b18b-cd39b8943666\" in room \"http://localhost/rooms/0bce82a2-dc24-4b78-b7d3-c9dd3d2771d8\" did not answer hearbeat check, closing connection","requestID":"6f429fa0-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"7cceaac0c8687ef031ad290280fac159","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7cceaac0c8687ef031ad290280fac159","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7cceaac0c8687ef031ad290280fac159"} device-1 | {"level":"info","message":"OPTIONS /devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e/websocket 200 1ms","method":"OPTIONS","requestID":"7cceaac0c8687ef031ad290280fac159","responseTime":1,"status":200,"url":"/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OH0.n_JVzfpEuu00tGAkXiFaEmUMeIDKgHPQuWImcAJdY1U","level":"info","message":"auth send jwt","requestID":"b8561ca2a0144887bc49bb7f6c53d4d7"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b8561ca2a0144887bc49bb7f6c53d4d7","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"b8561ca2a0144887bc49bb7f6c53d4d7"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1092,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:08Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1092,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.228748,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:08Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b8561ca2a0144887bc49bb7f6c53d4d7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240568,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OH0.n_JVzfpEuu00tGAkXiFaEmUMeIDKgHPQuWImcAJdY1U"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"b8561ca2a0144887bc49bb7f6c53d4d7","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f6443b975c6a205ea95da7b3461058e1","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f6443b975c6a205ea95da7b3461058e1","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f6443b975c6a205ea95da7b3461058e1"} device-1 | {"level":"info","message":"OPTIONS /devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b/websocket 200 1ms","method":"OPTIONS","requestID":"f6443b975c6a205ea95da7b3461058e1","responseTime":1,"status":200,"url":"/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"b8561ca2a0144887bc49bb7f6c53d4d7"} gateway-1 | {"time_local":"18/Jun/2025:09:56:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.023","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b8561ca2a0144887bc49bb7f6c53d4d7"} device-1 | {"level":"info","message":"POST /devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e/websocket 200 17ms","method":"POST","requestID":"b8561ca2a0144887bc49bb7f6c53d4d7","responseTime":17,"status":200,"url":"/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OH0.n_JVzfpEuu00tGAkXiFaEmUMeIDKgHPQuWImcAJdY1U","level":"info","message":"auth send jwt","requestID":"0a6e7fe3fbabbd000bcefc0a7a1d5995"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0a6e7fe3fbabbd000bcefc0a7a1d5995","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"0a6e7fe3fbabbd000bcefc0a7a1d5995"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1093,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1093,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.747619,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0a6e7fe3fbabbd000bcefc0a7a1d5995","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240568,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OH0.n_JVzfpEuu00tGAkXiFaEmUMeIDKgHPQuWImcAJdY1U"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0a6e7fe3fbabbd000bcefc0a7a1d5995","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"device 'http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"0a6e7fe3fbabbd000bcefc0a7a1d5995"} device-1 | {"level":"info","message":"POST /devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b/websocket 200 18ms","method":"POST","requestID":"0a6e7fe3fbabbd000bcefc0a7a1d5995","responseTime":18,"status":200,"url":"/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:56:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.022","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0a6e7fe3fbabbd000bcefc0a7a1d5995"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"74b8cba34d6cf29434e32517f5c1a45b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"74b8cba34d6cf29434e32517f5c1a45b","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"74b8cba34d6cf29434e32517f5c1a45b"} device-1 | {"level":"info","message":"OPTIONS /devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e? 200 0ms","method":"OPTIONS","requestID":"74b8cba34d6cf29434e32517f5c1a45b","responseTime":0,"status":200,"url":"/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg","level":"info","message":"auth send jwt","requestID":"eaf456224883b0172f09fab5d7464ba7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"eaf456224883b0172f09fab5d7464ba7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"eaf456224883b0172f09fab5d7464ba7"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1094,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1094,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.728592,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"eaf456224883b0172f09fab5d7464ba7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240569,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"eaf456224883b0172f09fab5d7464ba7","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b' connected"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:06.525778408Z"}]},"request_id":"779eca05-a3d8-4c47-9342-cc38b1529f46","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.0381505} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"eaf456224883b0172f09fab5d7464ba7","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"170528ed-57cf-40b9-8a58-dc46c39838c8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.0420275} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"eaf456224883b0172f09fab5d7464ba7","responseTime":3,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"4587209d3af74fb672a92df04151f323","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"4587209d3af74fb672a92df04151f323","responseTime":0,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b? 200 0ms","method":"OPTIONS","requestID":"4587209d3af74fb672a92df04151f323","responseTime":0,"status":200,"url":"/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4587209d3af74fb672a92df04151f323"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg","level":"info","message":"auth send jwt","requestID":"ecb2542a91de66512da496b1525433bf"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:06.525778408Z"}]},"request_id":"f384abd1-9546-4a78-963f-5faa926d89dc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.0521798} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ecb2542a91de66512da496b1525433bf","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"ecb2542a91de66512da496b1525433bf"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"eaf456224883b0172f09fab5d7464ba7","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"eaf456224883b0172f09fab5d7464ba7"} gateway-1 | {"time_local":"18/Jun/2025:09:56:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.031","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"eaf456224883b0172f09fab5d7464ba7"} device-1 | {"level":"info","message":"PATCH /devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e? 200 28ms","method":"PATCH","requestID":"eaf456224883b0172f09fab5d7464ba7","responseTime":28,"status":200,"url":"/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e?"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1095,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1095,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.700154,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ecb2542a91de66512da496b1525433bf","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240569,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ecb2542a91de66512da496b1525433bf","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:06.615480469Z"}]},"request_id":"fa4b9fee-7944-479d-b266-9e088693ade5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.0614717} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ecb2542a91de66512da496b1525433bf","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"41461536-e482-4af9-9634-ae328bf7cd2d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.0653636} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"ecb2542a91de66512da496b1525433bf","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:06.615480469Z"}]},"request_id":"d4bf45da-a6cc-4878-aee1-697c49bc4027","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.0729609} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"ecb2542a91de66512da496b1525433bf","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"ecb2542a91de66512da496b1525433bf"} device-1 | {"level":"info","message":"PATCH /devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b? 200 21ms","method":"PATCH","requestID":"ecb2542a91de66512da496b1525433bf","responseTime":21,"status":200,"url":"/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.026","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ecb2542a91de66512da496b1525433bf"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg","level":"info","message":"auth send jwt","requestID":"6731b5ef5e773cbe0f8177e846f78442"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6731b5ef5e773cbe0f8177e846f78442","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6731b5ef5e773cbe0f8177e846f78442"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1096,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6731b5ef5e773cbe0f8177e846f78442"} device-1 | {"level":"info","message":"GET /devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e? 200 15ms","method":"GET","requestID":"6731b5ef5e773cbe0f8177e846f78442","responseTime":15,"status":200,"url":"/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6731b5ef5e773cbe0f8177e846f78442"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1096,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.195358,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6731b5ef5e773cbe0f8177e846f78442","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240569,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6731b5ef5e773cbe0f8177e846f78442","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:06.525778408Z"}]},"request_id":"f2194c08-dc6a-4bd4-92c2-a5e1c2ea6546","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.0886362} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6731b5ef5e773cbe0f8177e846f78442","responseTime":2,"status":200,"url":"/relations/query"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg","level":"info","message":"auth send jwt","requestID":"317eccfd0f88e56d67fe1fd7cb6edf27"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"317eccfd0f88e56d67fe1fd7cb6edf27","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"317eccfd0f88e56d67fe1fd7cb6edf27"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1097,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1097,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.682067,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"317eccfd0f88e56d67fe1fd7cb6edf27","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240569,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"317eccfd0f88e56d67fe1fd7cb6edf27","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:06.615480469Z"}]},"request_id":"27f1b8b6-7961-4690-9420-f0e131785e14","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.1128726} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"317eccfd0f88e56d67fe1fd7cb6edf27","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"317eccfd0f88e56d67fe1fd7cb6edf27"} device-1 | {"level":"info","message":"GET /devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b? 200 9ms","method":"GET","requestID":"317eccfd0f88e56d67fe1fd7cb6edf27","responseTime":9,"status":200,"url":"/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"317eccfd0f88e56d67fe1fd7cb6edf27"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg","level":"info","message":"auth send jwt","requestID":"84c381f2647188b83bd6fdd7337cccd4"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"84c381f2647188b83bd6fdd7337cccd4","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"84c381f2647188b83bd6fdd7337cccd4"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1098,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1098,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.826536,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"84c381f2647188b83bd6fdd7337cccd4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240569,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"84c381f2647188b83bd6fdd7337cccd4","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b"},"level":"info","message":"Attempting to run experiment","requestID":"84c381f2647188b83bd6fdd7337cccd4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b"},"level":"info","message":"Attempting to book experiment","requestID":"84c381f2647188b83bd6fdd7337cccd4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b"},"level":"info","message":"Successfully booked experiment","requestID":"84c381f2647188b83bd6fdd7337cccd4"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"75793320-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"75795a30-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1099,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1099,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.638196,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1100,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"75793320-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240569,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"75793320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1100,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.68991,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"75795a30-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240569,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"75795a30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:06.525778408Z"}]},"request_id":"2b67adef-1d9f-4cdf-a587-75613903e45c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.2018323} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"75793320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":26,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:06.615480469Z"}]},"request_id":"8a0ea4df-4b2d-482b-bf33-d100ec8a30a1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.2024865} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"75795a30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"75793320-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e? 200 35ms","method":"GET","requestID":"75793320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"75795a30-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b? 200 35ms","method":"GET","requestID":"75795a30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b"},"level":"info","message":"Setting up experiment","requestID":"84c381f2647188b83bd6fdd7337cccd4"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"84c381f2647188b83bd6fdd7337cccd4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"84c381f2647188b83bd6fdd7337cccd4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b"},"level":"info","message":"Successfully locked booking for experiment","requestID":"84c381f2647188b83bd6fdd7337cccd4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b"},"level":"info","message":"Successfully set up experiment","requestID":"84c381f2647188b83bd6fdd7337cccd4"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"75862b70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"75865280-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b"},"level":"info","message":"Successfully running experiment","requestID":"84c381f2647188b83bd6fdd7337cccd4"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1101,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1101,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.68003,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1102,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"75862b70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240569,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"75862b70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1102,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.547848,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"75865280-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240569,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"75865280-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:06.525778408Z"}]},"request_id":"80650c61-f3c8-4ec1-a262-64632bb86af8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.2642562} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"75862b70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:06.615480469Z"}]},"request_id":"a1a7f267-7a94-41eb-8d58-41b9e64b191d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.264918} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"75865280-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"75862b70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e? 200 13ms","method":"GET","requestID":"75862b70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"75865280-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b? 200 13ms","method":"GET","requestID":"75865280-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2c33ee90-700f-4b42-96af-e7df7b6f599b#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2c33ee90-700f-4b42-96af-e7df7b6f599b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"ef39081d-89cf-49c4-9ac1-5c7ec03cc770","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.2716846} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7588c380-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"830117aa-99fe-4ce1-b328-05692b17887e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.2720218} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"84c381f2647188b83bd6fdd7337cccd4","responseTime":36,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1103,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1f12852b-eacb-4425-9dfa-97fac3885929","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.3004622} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1103,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.171897,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7588c380-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"7588c380-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"84c381f2647188b83bd6fdd7337cccd4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7588c380-4c2a-11f0-a085-a5c7b3a0c4e5"} gateway-1 | {"time_local":"18/Jun/2025:09:56:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1212","request_time":"0.188","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"84c381f2647188b83bd6fdd7337cccd4"} experiment-1 | {"level":"info","message":"POST /experiments? 201 184ms","method":"POST","requestID":"84c381f2647188b83bd6fdd7337cccd4","responseTime":184,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"POST /devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e/signaling 200 33ms","method":"POST","requestID":"7588c380-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"758e1ab0-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg","level":"info","message":"auth send jwt","requestID":"586eddc6efaf5710f388409a29ac2977"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1104,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"586eddc6efaf5710f388409a29ac2977","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"586eddc6efaf5710f388409a29ac2977"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"95e407a9-9be0-4a8b-8f37-a2bd16b3e81b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.311448} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1104,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.471644,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1105,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"758e1ab0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"758e1ab0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1105,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.607204,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"586eddc6efaf5710f388409a29ac2977","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240569,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"586eddc6efaf5710f388409a29ac2977","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"758e1ab0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b/signaling 200 9ms","method":"POST","requestID":"758e1ab0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b/signaling"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:06.525778408Z"}]},"request_id":"dfee1007-289c-46fe-826f-e4768f5d693f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.3171964} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"84c381f2647188b83bd6fdd7337cccd4"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"586eddc6efaf5710f388409a29ac2977","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"758fef70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"75901680-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1106,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1106,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.692254,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"758fef70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240569,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"758fef70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1107,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1107,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.567161,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"75901680-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240569,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"75901680-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:06.525778408Z"}]},"request_id":"68b9b00b-a4ce-44bd-98ba-f437c0d8fd8e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.3483899} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"758fef70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:06.615480469Z"}]},"request_id":"29400463-1144-4601-8445-0efbcda05716","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.351295} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"586eddc6efaf5710f388409a29ac2977"} gateway-1 | {"time_local":"18/Jun/2025:09:56:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"586eddc6efaf5710f388409a29ac2977"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"75901680-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"GET /devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e? 200 42ms","method":"GET","requestID":"586eddc6efaf5710f388409a29ac2977","responseTime":42,"status":200,"url":"/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"758fef70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e? 200 35ms","method":"GET","requestID":"758fef70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"75901680-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg","level":"info","message":"auth send jwt","requestID":"b78733f78c56d62f2cf71039e22024ae"} device-1 | {"level":"info","message":"GET /devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b? 200 35ms","method":"GET","requestID":"75901680-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b?"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b78733f78c56d62f2cf71039e22024ae","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"b78733f78c56d62f2cf71039e22024ae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b"},"level":"info","message":"Building connection plan","requestID":"84c381f2647188b83bd6fdd7337cccd4"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"5c58e818-c5aa-4f79-a3a6-faa4af5e1241"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"37150578-714d-4496-ab7d-98fe697a75c8"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"998bb1f4-6f3b-41d4-91df-18ffb8135f18"}]},"level":"info","message":"Built pairwise service configurations","requestID":"84c381f2647188b83bd6fdd7337cccd4"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"84c381f2647188b83bd6fdd7337cccd4"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"7595bbd0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1108,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1108,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.652548,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1109,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b78733f78c56d62f2cf71039e22024ae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240569,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b78733f78c56d62f2cf71039e22024ae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1109,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.541685,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7595bbd0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240569,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7595bbd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:06.615480469Z"}]},"request_id":"49708602-c248-4c3a-a74c-b93a31f6a2d7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.3627698} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b78733f78c56d62f2cf71039e22024ae","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"b78733f78c56d62f2cf71039e22024ae"} device-1 | {"level":"info","message":"GET /devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b? 200 9ms","method":"GET","requestID":"b78733f78c56d62f2cf71039e22024ae","responseTime":9,"status":200,"url":"/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b78733f78c56d62f2cf71039e22024ae"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"62dc3757-b213-4c77-beff-2124a5c73588","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.367397} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d55556b7-c54c-4fa6-82e8-cfa8eb524278","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.3676105} authorization-1 | {"level":"info","message":"POST /relations/update 200 29ms","method":"POST","requestID":"7595bbd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"7595bbd0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"7595bbd0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d'","requestID":"7595bbd0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d'","requestID":"7595bbd0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"7595bbd0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 45ms","method":"POST","requestID":"7595bbd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":45,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"7595bbd0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"84c381f2647188b83bd6fdd7337cccd4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"75a461d0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1110,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0977423a-8634-46d6-9e32-defaa43c037b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.4582994} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1110,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.516765,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"75a461d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"75a461d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"75a461d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e/signaling 200 10ms","method":"POST","requestID":"75a461d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e/signaling"} device-1 | {"device":"d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"75aa0720-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1111,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} device-1 | {"device":"6d99505f-77bf-41a6-93a0-7ccd9270ef9e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"6d99505f-77bf-41a6-93a0-7ccd9270ef9e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c93d244c-26f9-402b-9441-0babe42bccd6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.4947324} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1111,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.671292,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"75aa0720-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"75aa0720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"content":{"sdp":"v=0\r\no=- 7381127930598535382 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:GNao\r\na=ice-pwd:3CWzuyaRmnfh1rklLfpjDg+c\r\na=ice-options:trickle\r\na=fingerprint:sha-256 29:F5:28:3B:AE:7C:60:5B:7E:E4:35:CD:06:91:82:13:6D:67:E5:BC:47:CC:C1:0E:97:DA:01:A3:F3:2D:37:41\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"75aa0720-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b/signaling 200 14ms","method":"POST","requestID":"75aa0720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 4128206559140762339 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:JbTD\r\na=ice-pwd:h/tV/4e1ZTkHtEHXKqhYE57Y\r\na=ice-options:trickle\r\na=fingerprint:sha-256 2C:51:9A:9C:5E:3C:61:AB:DE:65:86:4D:98:A3:3D:8C:6C:42:B7:FA:4D:B4:F2:A1:22:A9:7F:E9:E8:3B:37:38\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"6d99505f-77bf-41a6-93a0-7ccd9270ef9e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:3689331185 1 udp 2113937151 dde98864-c04b-4374-bcc7-d88ff07c8175.local 39676 typ host generation 0 ufrag JbTD network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"6d99505f-77bf-41a6-93a0-7ccd9270ef9e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e'"} device-1 | {"content":{"candidate":"candidate:1607193486 1 udp 1677729535 141.24.211.56 39676 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag JbTD network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"6d99505f-77bf-41a6-93a0-7ccd9270ef9e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e'"} device-1 | {"content":{"candidate":"candidate:516852647 1 udp 2113937151 913be58d-d220-474f-a813-9d984d8ded9b.local 59540 typ host generation 0 ufrag GNao network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:2380606132 1 udp 1677729535 141.24.211.56 59540 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag GNao network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b'"} device-1 | {"device":"6d99505f-77bf-41a6-93a0-7ccd9270ef9e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b464d61d-d1cd-4b4a-8330-a544b9c35a8d","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"6d99505f-77bf-41a6-93a0-7ccd9270ef9e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c31f8f4ee9a02dfee1712ae43cf3b604","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c31f8f4ee9a02dfee1712ae43cf3b604","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d"}}},"level":"info","message":"received a callback","requestID":"c31f8f4ee9a02dfee1712ae43cf3b604"} device-1 | {"device":"d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"c31f8f4ee9a02dfee1712ae43cf3b604","responseTime":28,"status":200,"url":"/callbacks/experiment"} device-1 | {"device":"6d99505f-77bf-41a6-93a0-7ccd9270ef9e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} gateway-1 | {"time_local":"18/Jun/2025:09:56:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"c31f8f4ee9a02dfee1712ae43cf3b604"} device-1 | {"device":"6d99505f-77bf-41a6-93a0-7ccd9270ef9e","deviceName":"JS Device 1","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"b464d61d-d1cd-4b4a-8330-a544b9c35a8d","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"b464d61d-d1cd-4b4a-8330-a544b9c35a8d","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b464d61d-d1cd-4b4a-8330-a544b9c35a8d","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c3b327e0ac071e2d2043cbe62eeeb367","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c3b327e0ac071e2d2043cbe62eeeb367","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d"}}},"level":"info","message":"received a callback","requestID":"c3b327e0ac071e2d2043cbe62eeeb367"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"75c11190-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1112,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb464d61d-d1cd-4b4a-8330-a544b9c35a8d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ed45c2df-8535-4336-ab81-1192df7049c1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.644995} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1112,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.137074,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"75c11190-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"75c11190-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"75c11190-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d 200 7ms","method":"GET","requestID":"75c11190-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 52ms","method":"POST","requestID":"c3b327e0ac071e2d2043cbe62eeeb367","responseTime":52,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch","requestID":"c3b327e0ac071e2d2043cbe62eeeb367"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"75c83d80-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1113,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a31dfd7c-80d9-4526-8bb8-d61041a6e791","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.6924455} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1113,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.689731,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"75c83d80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"75c83d80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg","level":"info","message":"auth send jwt","requestID":"966463234f27fa1f5f311a0d70dbb8c7"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"75c83d80-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"966463234f27fa1f5f311a0d70dbb8c7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e/signaling 200 8ms","method":"POST","requestID":"75c83d80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e/signaling"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b","requestID":"966463234f27fa1f5f311a0d70dbb8c7"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"75c9eb30-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1114,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1114,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.609897,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1115,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"966463234f27fa1f5f311a0d70dbb8c7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240569,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"966463234f27fa1f5f311a0d70dbb8c7","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5d6ef357-35c0-406a-b0af-3d3c4798a8b6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.703598} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1115,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.339747,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"75c9eb30-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"75c9eb30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b","requestID":"966463234f27fa1f5f311a0d70dbb8c7"} experiment-1 | {"level":"info","message":"GET /experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b 200 32ms","method":"GET","requestID":"966463234f27fa1f5f311a0d70dbb8c7","responseTime":32,"status":200,"url":"/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"75c9eb30-4c2a-11f0-a085-a5c7b3a0c4e5"} gateway-1 | {"time_local":"18/Jun/2025:09:56:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b HTTP/1.1","status": "200","body_bytes_sent":"1285","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"966463234f27fa1f5f311a0d70dbb8c7"} device-1 | {"level":"info","message":"POST /devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b/signaling 200 32ms","method":"POST","requestID":"75c9eb30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg","level":"info","message":"auth send jwt","requestID":"c98adbecb18b35e6a5f40c29a17c985a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c98adbecb18b35e6a5f40c29a17c985a","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b","requestID":"c98adbecb18b35e6a5f40c29a17c985a"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1116,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1116,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.683847,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c98adbecb18b35e6a5f40c29a17c985a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240569,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"c98adbecb18b35e6a5f40c29a17c985a","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b"},"level":"info","message":"Attempting to finish experiment","requestID":"c98adbecb18b35e6a5f40c29a17c985a"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"75d0f010-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1117,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1117,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.638451,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"75d0f010-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240569,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"75d0f010-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d","device":"6d99505f-77bf-41a6-93a0-7ccd9270ef9e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d","device":"d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b464d61d-d1cd-4b4a-8330-a544b9c35a8d","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb464d61d-d1cd-4b4a-8330-a544b9c35a8d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb464d61d-d1cd-4b4a-8330-a544b9c35a8d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"723d37ce-78df-43e3-8bc0-4c7a73544d23","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.7811542} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"041c0486-618f-4d88-bcad-cb8057ae89ad","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.7814908} authorization-1 | {"level":"info","message":"POST /relations/update 200 29ms","method":"POST","requestID":"75d0f010-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"1bc74418f6958b5eb7bf8f559a81be64","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"1bc74418f6958b5eb7bf8f559a81be64","responseTime":0,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"6a2490bcee39de6031344b7df84880cd","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6a2490bcee39de6031344b7df84880cd","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d"}}},"level":"info","message":"received a callback","requestID":"1bc74418f6958b5eb7bf8f559a81be64"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d"}}},"level":"info","message":"received a callback","requestID":"6a2490bcee39de6031344b7df84880cd"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"75d0f010-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d 204 42ms","method":"DELETE","requestID":"75d0f010-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":42,"status":204,"url":"/peerconnections/b464d61d-d1cd-4b4a-8330-a544b9c35a8d"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b"},"level":"info","message":"Successfully finished experiment","requestID":"c98adbecb18b35e6a5f40c29a17c985a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"75dd7330-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1118,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d99505f-77bf-41a6-93a0-7ccd9270ef9e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"923ce729-64d4-4381-bf22-1a4b40c1e9b8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.8314168} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1118,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.237494,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"75dd7330-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"75dd7330-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"75dd7330-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e/signaling 200 8ms","method":"POST","requestID":"75dd7330-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2c33ee90-700f-4b42-96af-e7df7b6f599b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2c33ee90-700f-4b42-96af-e7df7b6f599b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"897b5601-fa4e-4b93-aab0-71ca973573f2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.8370626} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"369e80c1-7cb8-43a7-97d7-b26f4594db3d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.8374546} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"75df20e0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"c98adbecb18b35e6a5f40c29a17c985a","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1119,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd804ceed-68f0-4a0c-8353-ec6e2c0ed73b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6de94859-4fd5-4854-8222-6e7aa47b9d7c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.8421526} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1119,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.235139,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"75df20e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"75df20e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"75df20e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b/signaling 200 8ms","method":"POST","requestID":"75df20e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b","requestID":"c98adbecb18b35e6a5f40c29a17c985a"} gateway-1 | {"time_local":"18/Jun/2025:09:56:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.203","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c98adbecb18b35e6a5f40c29a17c985a"} experiment-1 | {"level":"info","message":"DELETE /experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b 204 200ms","method":"DELETE","requestID":"c98adbecb18b35e6a5f40c29a17c985a","responseTime":200,"status":204,"url":"/experiments/2c33ee90-700f-4b42-96af-e7df7b6f599b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 152ms","method":"POST","requestID":"1bc74418f6958b5eb7bf8f559a81be64","responseTime":152,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.154","http_referrer":"","http_user_agent":"node-fetch","requestID":"1bc74418f6958b5eb7bf8f559a81be64"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 151ms","method":"POST","requestID":"6a2490bcee39de6031344b7df84880cd","responseTime":151,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.155","http_referrer":"","http_user_agent":"node-fetch","requestID":"6a2490bcee39de6031344b7df84880cd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg","level":"info","message":"auth send jwt","requestID":"01ed49e3f675c14a29959481ad80fca6"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"01ed49e3f675c14a29959481ad80fca6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"01ed49e3f675c14a29959481ad80fca6"} gateway-1 | {"time_local":"18/Jun/2025:09:56:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3208","request_time":"0.949","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a1f99fb4d012463ffed077de1a0c9410"} gateway-1 | {"time_local":"18/Jun/2025:09:56:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3207","request_time":"0.926","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f7fd2d9c61508fe25027bc1f05c0fb2c"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1120,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:09Z"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d804ceed-68f0-4a0c-8353-ec6e2c0ed73b' closed"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1120,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":6.184311,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"01ed49e3f675c14a29959481ad80fca6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240569,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU2OX0.fGknbYC7O39qOW5PAvMyg2mDRjJNryobChrhFXMu5Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 22ms","method":"POST","requestID":"01ed49e3f675c14a29959481ad80fca6","responseTime":22,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/6d99505f-77bf-41a6-93a0-7ccd9270ef9e' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"edea1694-cbce-46d2-b9bd-2a6e0f12b3a4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.9846869} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"01ed49e3f675c14a29959481ad80fca6","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1fbf9651-caa9-4a1c-9fbe-cd6f947b5a72","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.9883378} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"01ed49e3f675c14a29959481ad80fca6","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"4c7694d6-7061-4229-ac3a-2e84f3842cca","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.996653} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ab4c519b-135d-4476-8f34-e8b416bf49a4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.9968193} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"01ed49e3f675c14a29959481ad80fca6","responseTime":10,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:09.996626161Z"}]},"request_id":"bfed00a1-bde5-4d88-be4f-1c2b563bb870","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240569.9998765} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"01ed49e3f675c14a29959481ad80fca6","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"01ed49e3f675c14a29959481ad80fca6"} device-1 | {"level":"info","message":"POST /devices? 201 59ms","method":"POST","requestID":"01ed49e3f675c14a29959481ad80fca6","responseTime":59,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.064","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"01ed49e3f675c14a29959481ad80fca6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3MH0.b3LjJTU2Gz-6X-q2B1xPaihfajn2MHxVeMWz8qFBnjA","level":"info","message":"auth send jwt","requestID":"ef636675543d31d5160523c0e9b54001"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ef636675543d31d5160523c0e9b54001","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"ef636675543d31d5160523c0e9b54001"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1121,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:10Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1121,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.732972,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ef636675543d31d5160523c0e9b54001","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240570,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3MH0.b3LjJTU2Gz-6X-q2B1xPaihfajn2MHxVeMWz8qFBnjA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ef636675543d31d5160523c0e9b54001","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"75c053e4-725c-448e-82c8-a1b3d462a3d8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240570.0198917} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"ef636675543d31d5160523c0e9b54001","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"60f06587-40e2-4545-acab-baedefa8c11f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240570.0231454} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"ef636675543d31d5160523c0e9b54001","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"78cc0318-130b-46cb-85be-7c77051e352e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240570.036607} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0a3c26d2-f575-4889-8171-bf69d79496f7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240570.0366826} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"ef636675543d31d5160523c0e9b54001","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:10.036580185Z"}]},"request_id":"da1005b5-90ff-45b6-a6ee-b0a65a0830c7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240570.040287} authorization-1 | {"level":"info","message":"POST /relations/query 200 1ms","method":"POST","requestID":"ef636675543d31d5160523c0e9b54001","responseTime":1,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"ef636675543d31d5160523c0e9b54001"} device-1 | {"level":"info","message":"POST /devices? 201 35ms","method":"POST","requestID":"ef636675543d31d5160523c0e9b54001","responseTime":35,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ef636675543d31d5160523c0e9b54001"} forwarding-1 | {"level":"info","message":"Participant \"e7c36b5a-2018-4737-ac99-b3c191dbcc30\" in room \"http://localhost/rooms/3f60bc57-64fe-47e7-90d6-c121a35ebc06\" did not answer hearbeat check, closing connection","requestID":"706eeaa0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"15cd1590-6b0c-403c-86e2-8a75bcc1f72a\" in room \"http://localhost/rooms/3f60bc57-64fe-47e7-90d6-c121a35ebc06\" did not answer hearbeat check, closing connection","requestID":"706f11b0-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3MH0.b3LjJTU2Gz-6X-q2B1xPaihfajn2MHxVeMWz8qFBnjA","level":"info","message":"auth send jwt","requestID":"d110720504b14fd2747d58b4e176d549"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d110720504b14fd2747d58b4e176d549","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"d110720504b14fd2747d58b4e176d549"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1122,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:10Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1122,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.865091,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d110720504b14fd2747d58b4e176d549","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240570,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3MH0.b3LjJTU2Gz-6X-q2B1xPaihfajn2MHxVeMWz8qFBnjA"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"d110720504b14fd2747d58b4e176d549","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:10.036580185Z"}]},"request_id":"0fbf197d-472b-4cdf-8800-c75971acd939","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240570.9807444} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d110720504b14fd2747d58b4e176d549","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4f0f6999-3ca4-47dd-8966-d5d1bbee21ab","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240570.9845579} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"d110720504b14fd2747d58b4e176d549","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:10.036580185Z"}]},"request_id":"1968ed94-9296-42d3-8c79-80868958bc3c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240570.9961193} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d110720504b14fd2747d58b4e176d549","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"d110720504b14fd2747d58b4e176d549"} device-1 | {"level":"info","message":"PATCH /devices/be3b6f40-0fa5-4062-b0b7-34388e346da9 200 50ms","method":"PATCH","requestID":"d110720504b14fd2747d58b4e176d549","responseTime":50,"status":200,"url":"/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9"} gateway-1 | {"time_local":"18/Jun/2025:09:56:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/be3b6f40-0fa5-4062-b0b7-34388e346da9 HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.054","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"d110720504b14fd2747d58b4e176d549"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3MX0.58YfdOVoMWEDYDH_jM04h7GUVX_TtWH3MDOlX20jr98","level":"info","message":"auth send jwt","requestID":"b2a37f11a65268e433f4444f8dc2b748"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b2a37f11a65268e433f4444f8dc2b748","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"b2a37f11a65268e433f4444f8dc2b748"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1123,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:11Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1123,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":20.880134,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b2a37f11a65268e433f4444f8dc2b748","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240571,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3MX0.58YfdOVoMWEDYDH_jM04h7GUVX_TtWH3MDOlX20jr98"} authorization-1 | {"level":"info","message":"POST /authorize 200 23ms","method":"POST","requestID":"b2a37f11a65268e433f4444f8dc2b748","responseTime":23,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"b2a37f11a65268e433f4444f8dc2b748"} device-1 | {"level":"info","message":"POST /devices/be3b6f40-0fa5-4062-b0b7-34388e346da9/websocket 200 34ms","method":"POST","requestID":"b2a37f11a65268e433f4444f8dc2b748","responseTime":34,"status":200,"url":"/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:56:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/be3b6f40-0fa5-4062-b0b7-34388e346da9/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.037","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"b2a37f11a65268e433f4444f8dc2b748"} device-1 | {"level":"info","message":"device 'http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"cdbe87b3278b1070875fec26e273283b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"cdbe87b3278b1070875fec26e273283b","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"cdbe87b3278b1070875fec26e273283b"} device-1 | {"level":"info","message":"OPTIONS /devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e/websocket 200 0ms","method":"OPTIONS","requestID":"cdbe87b3278b1070875fec26e273283b","responseTime":0,"status":200,"url":"/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw","level":"info","message":"auth send jwt","requestID":"a123cffef2d09f3a5b66145ca475d882"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a123cffef2d09f3a5b66145ca475d882","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"a123cffef2d09f3a5b66145ca475d882"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1124,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1124,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.224665,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a123cffef2d09f3a5b66145ca475d882","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240572,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"a123cffef2d09f3a5b66145ca475d882","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"a123cffef2d09f3a5b66145ca475d882"} gateway-1 | {"time_local":"18/Jun/2025:09:56:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.021","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a123cffef2d09f3a5b66145ca475d882"} device-1 | {"level":"info","message":"POST /devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e/websocket 200 16ms","method":"POST","requestID":"a123cffef2d09f3a5b66145ca475d882","responseTime":16,"status":200,"url":"/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2e2efc7d755a0f57f4c6d390e32bd1b8","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2e2efc7d755a0f57f4c6d390e32bd1b8","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2e2efc7d755a0f57f4c6d390e32bd1b8"} device-1 | {"level":"info","message":"OPTIONS /devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e? 200 1ms","method":"OPTIONS","requestID":"2e2efc7d755a0f57f4c6d390e32bd1b8","responseTime":1,"status":200,"url":"/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw","level":"info","message":"auth send jwt","requestID":"ce69ca9c2ea58ee83b383321b49bbb02"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ce69ca9c2ea58ee83b383321b49bbb02","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"ce69ca9c2ea58ee83b383321b49bbb02"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1125,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1125,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.69217,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ce69ca9c2ea58ee83b383321b49bbb02","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240572,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"ce69ca9c2ea58ee83b383321b49bbb02","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:09.996626161Z"}]},"request_id":"2d68686c-53ac-48bf-8672-6852186fd522","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.379702} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ce69ca9c2ea58ee83b383321b49bbb02","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e85949c4-6bea-4219-b5d6-5d48d310cc71","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.383917} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"ce69ca9c2ea58ee83b383321b49bbb02","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:09.996626161Z"}]},"request_id":"2a553109-c77d-440f-b86a-ff80a1675dfe","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.394217} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"ce69ca9c2ea58ee83b383321b49bbb02","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"ce69ca9c2ea58ee83b383321b49bbb02"} device-1 | {"level":"info","message":"PATCH /devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e? 200 27ms","method":"PATCH","requestID":"ce69ca9c2ea58ee83b383321b49bbb02","responseTime":27,"status":200,"url":"/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.030","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ce69ca9c2ea58ee83b383321b49bbb02"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw","level":"info","message":"auth send jwt","requestID":"6ba824eb6c4935987aa0a36adbee1d40"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6ba824eb6c4935987aa0a36adbee1d40","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6ba824eb6c4935987aa0a36adbee1d40"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1126,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1126,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.681502,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6ba824eb6c4935987aa0a36adbee1d40","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240572,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"6ba824eb6c4935987aa0a36adbee1d40","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:09.996626161Z"}]},"request_id":"e6ccde05-6221-4659-a2df-684567b0b893","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.410081} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6ba824eb6c4935987aa0a36adbee1d40","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6ba824eb6c4935987aa0a36adbee1d40"} device-1 | {"level":"info","message":"GET /devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e? 200 8ms","method":"GET","requestID":"6ba824eb6c4935987aa0a36adbee1d40","responseTime":8,"status":200,"url":"/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6ba824eb6c4935987aa0a36adbee1d40"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw","level":"info","message":"auth send jwt","requestID":"b75e3ca38b865e4d34be0882374e674c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b75e3ca38b865e4d34be0882374e674c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"b75e3ca38b865e4d34be0882374e674c"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1127,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1127,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.039966,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b75e3ca38b865e4d34be0882374e674c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240572,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"b75e3ca38b865e4d34be0882374e674c","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:10.036580185Z"}]},"request_id":"31d3dc35-259d-4bcc-aec5-f002f2efd4c0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.4248853} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"b75e3ca38b865e4d34be0882374e674c","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"b75e3ca38b865e4d34be0882374e674c"} device-1 | {"level":"info","message":"GET /devices/be3b6f40-0fa5-4062-b0b7-34388e346da9? 200 12ms","method":"GET","requestID":"b75e3ca38b865e4d34be0882374e674c","responseTime":12,"status":200,"url":"/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/be3b6f40-0fa5-4062-b0b7-34388e346da9? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b75e3ca38b865e4d34be0882374e674c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw","level":"info","message":"auth send jwt","requestID":"3dabb240cb4d0556dcf8de505e7ef793"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3dabb240cb4d0556dcf8de505e7ef793","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"3dabb240cb4d0556dcf8de505e7ef793"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1128,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1128,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.699157,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3dabb240cb4d0556dcf8de505e7ef793","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240572,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3dabb240cb4d0556dcf8de505e7ef793","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6"},"level":"info","message":"Attempting to run experiment","requestID":"3dabb240cb4d0556dcf8de505e7ef793"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6"},"level":"info","message":"Attempting to book experiment","requestID":"3dabb240cb4d0556dcf8de505e7ef793"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6"},"level":"info","message":"Successfully booked experiment","requestID":"3dabb240cb4d0556dcf8de505e7ef793"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"77737c80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"77774d10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1129,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1129,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.717756,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1130,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"77737c80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240572,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"77737c80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1130,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.819969,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"77774d10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240572,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"77774d10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:09.996626161Z"}]},"request_id":"b7d8b7ec-b0d5-4e76-904c-7c0b4eb5068a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.5198572} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"77737c80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:10.036580185Z"}]},"request_id":"f1de436b-9a3f-4a6e-9a13-6055a487771d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.520533} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"77774d10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"77737c80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e? 200 36ms","method":"GET","requestID":"77737c80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"77774d10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/be3b6f40-0fa5-4062-b0b7-34388e346da9? 200 12ms","method":"GET","requestID":"77774d10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6"},"level":"info","message":"Setting up experiment","requestID":"3dabb240cb4d0556dcf8de505e7ef793"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"3dabb240cb4d0556dcf8de505e7ef793"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"3dabb240cb4d0556dcf8de505e7ef793"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6"},"level":"info","message":"Successfully locked booking for experiment","requestID":"3dabb240cb4d0556dcf8de505e7ef793"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6"},"level":"info","message":"Successfully set up experiment","requestID":"3dabb240cb4d0556dcf8de505e7ef793"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"777d1970-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"777d4080-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6"},"level":"info","message":"Successfully running experiment","requestID":"3dabb240cb4d0556dcf8de505e7ef793"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1131,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1131,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.910228,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1132,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"777d1970-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240572,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"777d1970-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1132,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.495814,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"777d4080-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240572,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"777d4080-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:09.996626161Z"}]},"request_id":"e8324249-0a00-4120-9b6c-1ba17b5adbb5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.5609875} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"777d1970-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:10.036580185Z"}]},"request_id":"efd90892-42c7-4429-9112-ef83968cd131","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.5618658} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"777d4080-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"777d1970-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e? 200 15ms","method":"GET","requestID":"777d1970-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":15,"status":200,"url":"/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"777d4080-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5d1d2b1f-9224-4b6b-82c8-143ea4063cf6#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5d1d2b1f-9224-4b6b-82c8-143ea4063cf6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"953cdade-94c6-4d6d-92be-e15d1cea798b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.5667498} device-1 | {"level":"info","message":"GET /devices/be3b6f40-0fa5-4062-b0b7-34388e346da9? 200 15ms","method":"GET","requestID":"777d4080-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":15,"status":200,"url":"/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"78c99d18-a528-4919-a6a6-93c008c7b975","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.5669675} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"3dabb240cb4d0556dcf8de505e7ef793","responseTime":11,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"777fd890-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1133,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c0df22d2-e90c-43e8-8001-e6b31266dd48","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.574125} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1133,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.994705,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:12Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"3dabb240cb4d0556dcf8de505e7ef793"} gateway-1 | {"time_local":"18/Jun/2025:09:56:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1216","request_time":"0.146","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3dabb240cb4d0556dcf8de505e7ef793"} experiment-1 | {"level":"info","message":"POST /experiments? 201 143ms","method":"POST","requestID":"3dabb240cb4d0556dcf8de505e7ef793","responseTime":143,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"777fd890-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"777fd890-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"777fd890-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e/signaling 200 10ms","method":"POST","requestID":"777fd890-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw","level":"info","message":"auth send jwt","requestID":"fc042bc0c9d362453a031b39f8f6179c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fc042bc0c9d362453a031b39f8f6179c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"fc042bc0c9d362453a031b39f8f6179c"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7781ad50-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1134,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1134,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.793196,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1135,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"fc042bc0c9d362453a031b39f8f6179c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240572,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"fc042bc0c9d362453a031b39f8f6179c","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"77252af1-91b8-43e4-9a53-38a0e4188f2c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.5866125} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1135,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.462478,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7781ad50-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"7781ad50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:09.996626161Z"}]},"request_id":"675b3b2a-2f50-46b6-93a9-46a2979113a4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.5882185} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"fc042bc0c9d362453a031b39f8f6179c","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7781ad50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/be3b6f40-0fa5-4062-b0b7-34388e346da9/signaling 200 11ms","method":"POST","requestID":"7781ad50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"fc042bc0c9d362453a031b39f8f6179c"} gateway-1 | {"time_local":"18/Jun/2025:09:56:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fc042bc0c9d362453a031b39f8f6179c"} device-1 | {"level":"info","message":"GET /devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e? 200 13ms","method":"GET","requestID":"fc042bc0c9d362453a031b39f8f6179c","responseTime":13,"status":200,"url":"/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"3dabb240cb4d0556dcf8de505e7ef793"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7783a920-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7783d030-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw","level":"info","message":"auth send jwt","requestID":"eebec444d0eef1efe817ce24ad4136d3"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"eebec444d0eef1efe817ce24ad4136d3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"eebec444d0eef1efe817ce24ad4136d3"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Received request.","req_id":1136,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"client_addr":"127.0.0.1:47912","level":"info","msg":"Sent response.","req_id":1136,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.404324,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1137,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7783a920-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240572,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"7783a920-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1137,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.658823,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7783d030-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240572,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"7783d030-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1138,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1138,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.570753,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"eebec444d0eef1efe817ce24ad4136d3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240572,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"eebec444d0eef1efe817ce24ad4136d3","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:10.036580185Z"}]},"request_id":"6a0527f6-707e-4d0d-ba0b-1ffe5afa65ab","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.603116} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"7783d030-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:09.996626161Z"}]},"request_id":"90d4e0ac-fa38-4afd-ae32-911b2835a004","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.6050916} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"7783a920-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7783d030-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:10.036580185Z"}]},"request_id":"26e851c9-0b85-4c9b-a9f3-1a992b7c08a4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.6067162} device-1 | {"level":"info","message":"GET /devices/be3b6f40-0fa5-4062-b0b7-34388e346da9? 200 12ms","method":"GET","requestID":"7783d030-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"eebec444d0eef1efe817ce24ad4136d3","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7783a920-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e? 200 16ms","method":"GET","requestID":"7783a920-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":16,"status":200,"url":"/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"eebec444d0eef1efe817ce24ad4136d3"} device-1 | {"level":"info","message":"GET /devices/be3b6f40-0fa5-4062-b0b7-34388e346da9? 200 13ms","method":"GET","requestID":"eebec444d0eef1efe817ce24ad4136d3","responseTime":13,"status":200,"url":"/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/be3b6f40-0fa5-4062-b0b7-34388e346da9? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"eebec444d0eef1efe817ce24ad4136d3"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6"},"level":"info","message":"Building connection plan","requestID":"3dabb240cb4d0556dcf8de505e7ef793"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"8d64f1b1-ae8f-4d07-ac65-370fc47b3fe0"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"79e970cb-ca1e-4363-8416-8516a02eb9ad"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"602b8132-319a-4290-9a5b-ea8b4473cf0a"}]},"level":"info","message":"Built pairwise service configurations","requestID":"3dabb240cb4d0556dcf8de505e7ef793"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"3dabb240cb4d0556dcf8de505e7ef793"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"77866840-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1139,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1139,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.651506,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"77866840-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240572,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Mn0.QCpQ2CFNhzGjTHAKLkEm3W3bJAJHfB0xTBnzMdqKFbw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"77866840-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"abf9d398-b8c7-4257-9d23-1d80d5cfb721","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.6220336} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"48d8d8e8-c019-41f0-aff8-3838432fc80c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.622237} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"77866840-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"77866840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"77866840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/91c236dd-f386-431a-a1bf-6d564b513aee'","requestID":"77866840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/91c236dd-f386-431a-a1bf-6d564b513aee'","requestID":"77866840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"77866840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 48ms","method":"POST","requestID":"77866840-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":48,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"77866840-4c2a-11f0-a085-a5c7b3a0c4e5"} forwarding-1 | {"level":"info","message":"Participant \"b50eb54c-ea60-46bf-a097-925ccc7ae4d8\" in room \"http://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c\" did not answer hearbeat check, closing connection","requestID":"719d3170-4c2a-11f0-b702-8b8a85c3ad9a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"3dabb240cb4d0556dcf8de505e7ef793"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7795d190-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1140,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f6c947f9-73eb-46c3-9d8b-eb567bda69d5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.7175856} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1140,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.361632,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7795d190-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"7795d190-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7795d190-4c2a-11f0-a085-a5c7b3a0c4e5"} forwarding-1 | {"level":"info","message":"Participant \"48941887-1b0e-4633-87fa-e4f82c5cf035\" in room \"http://localhost/rooms/b638a5f5-6ea2-40a3-a0fe-7e013000e70c\" did not answer hearbeat check, closing connection","requestID":"719d5880-4c2a-11f0-b702-8b8a85c3ad9a"} device-1 | {"level":"info","message":"POST /devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e/signaling 200 8ms","method":"POST","requestID":"7795d190-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"77977f40-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1141,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:12Z"} device-1 | {"device":"b4ecf98b-f54f-446b-99d9-85affdbfe61e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"b4ecf98b-f54f-446b-99d9-85affdbfe61e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4d4daa7f-6a11-437f-b167-10ec3b11ca62","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240572.728499} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1141,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.171863,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"77977f40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"77977f40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"77977f40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/be3b6f40-0fa5-4062-b0b7-34388e346da9/signaling 200 33ms","method":"POST","requestID":"77977f40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9/signaling"} device-1 | {"device":"be3b6f40-0fa5-4062-b0b7-34388e346da9","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"91c236dd-f386-431a-a1bf-6d564b513aee","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"content":{"sdp":"v=0\r\no=- 2365900035979379485 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=msid-semantic: WMS\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:4bbC\r\na=ice-pwd:dmrL5+o9IkmlBgx1Sgs+3oCI\r\na=ice-options:trickle\r\na=fingerprint:sha-256 BF:41:D1:BA:25:29:FF:14:17:FC:C9:70:AB:F0:AE:B7:E0:7D:F5:F5:E4:77:8E:20:1F:0D:2B:BE:4D:79:BD:E6\r\na=setup:active\r\na=mid:0\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n","type":"answer"},"device":"b4ecf98b-f54f-446b-99d9-85affdbfe61e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:1820178567 1 udp 2113937151 2def23e3-e007-48f8-858c-e66da33ab85e.local 56507 typ host generation 0 ufrag 4bbC network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"b4ecf98b-f54f-446b-99d9-85affdbfe61e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"b4ecf98b-f54f-446b-99d9-85affdbfe61e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"content":{"candidate":"candidate:4283832724 1 udp 1677729535 141.24.211.56 56507 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag 4bbC network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"b4ecf98b-f54f-446b-99d9-85affdbfe61e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/91c236dd-f386-431a-a1bf-6d564b513aee' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"91c236dd-f386-431a-a1bf-6d564b513aee","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"be3b6f40-0fa5-4062-b0b7-34388e346da9","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"be3b6f40-0fa5-4062-b0b7-34388e346da9","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"be3b6f40-0fa5-4062-b0b7-34388e346da9","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e'"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"207a7cc6ace5b6caabe0e26cf847b67c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"device":"b4ecf98b-f54f-446b-99d9-85affdbfe61e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"207a7cc6ace5b6caabe0e26cf847b67c","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/91c236dd-f386-431a-a1bf-6d564b513aee"}}},"level":"info","message":"received a callback","requestID":"207a7cc6ace5b6caabe0e26cf847b67c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"207a7cc6ace5b6caabe0e26cf847b67c","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.006","http_referrer":"","http_user_agent":"node-fetch","requestID":"207a7cc6ace5b6caabe0e26cf847b67c"} device-1 | {"data":{"peerconnection":"91c236dd-f386-431a-a1bf-6d564b513aee","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"be3b6f40-0fa5-4062-b0b7-34388e346da9","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b4ecf98b-f54f-446b-99d9-85affdbfe61e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"be3b6f40-0fa5-4062-b0b7-34388e346da9","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"91c236dd-f386-431a-a1bf-6d564b513aee","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"b4ecf98b-f54f-446b-99d9-85affdbfe61e","deviceName":"JS Device 1","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/91c236dd-f386-431a-a1bf-6d564b513aee' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"91c236dd-f386-431a-a1bf-6d564b513aee","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/91c236dd-f386-431a-a1bf-6d564b513aee"}}},"level":"info","message":"received a callback","requestID":"0a5247b2f4605e60c44b5561a081d58f"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0a5247b2f4605e60c44b5561a081d58f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0a5247b2f4605e60c44b5561a081d58f","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"78cfff40-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1142,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:14Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F91c236dd-f386-431a-a1bf-6d564b513aee","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"95958af3-0ab1-4ca7-8853-ead201195d82","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240574.7764018} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1142,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.248696,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/91c236dd-f386-431a-a1bf-6d564b513aee","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"78cfff40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/91c236dd-f386-431a-a1bf-6d564b513aee","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"78cfff40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"78cfff40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/91c236dd-f386-431a-a1bf-6d564b513aee 200 7ms","method":"GET","requestID":"78cfff40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/peerconnections/91c236dd-f386-431a-a1bf-6d564b513aee"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 25ms","method":"POST","requestID":"0a5247b2f4605e60c44b5561a081d58f","responseTime":25,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch","requestID":"0a5247b2f4605e60c44b5561a081d58f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"78d30c80-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1143,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:14Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c6ae7f77-128f-46f6-a62b-44d789a6d728","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240574.8209627} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1143,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.305818,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"78d30c80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"78d30c80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"78d30c80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e/signaling 200 33ms","method":"POST","requestID":"78d30c80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"78d863b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1144,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:14Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"14d0692c-06fe-49c9-bd24-3ba938a23b09","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240574.8310184} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1144,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.326207,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"78d863b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"78d863b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"78d863b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/be3b6f40-0fa5-4062-b0b7-34388e346da9/signaling 200 8ms","method":"POST","requestID":"78d863b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3NH0.QW9GXJJG6VOB9yAsrLVbDEyPw2TwA4NLnQAVYSFq-Fw","level":"info","message":"auth send jwt","requestID":"6b9b9bbef913b274d0cc03764b986c6c"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6b9b9bbef913b274d0cc03764b986c6c","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6","requestID":"6b9b9bbef913b274d0cc03764b986c6c"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1145,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:14Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1145,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.763606,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b9b9bbef913b274d0cc03764b986c6c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240574,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3NH0.QW9GXJJG6VOB9yAsrLVbDEyPw2TwA4NLnQAVYSFq-Fw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6b9b9bbef913b274d0cc03764b986c6c","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6","requestID":"6b9b9bbef913b274d0cc03764b986c6c"} gateway-1 | {"time_local":"18/Jun/2025:09:56:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6 HTTP/1.1","status": "200","body_bytes_sent":"1289","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6b9b9bbef913b274d0cc03764b986c6c"} experiment-1 | {"level":"info","message":"GET /experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6 200 8ms","method":"GET","requestID":"6b9b9bbef913b274d0cc03764b986c6c","responseTime":8,"status":200,"url":"/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3NH0.QW9GXJJG6VOB9yAsrLVbDEyPw2TwA4NLnQAVYSFq-Fw","level":"info","message":"auth send jwt","requestID":"be4ccd8d267738073d4069c87557c1df"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"be4ccd8d267738073d4069c87557c1df","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6","requestID":"be4ccd8d267738073d4069c87557c1df"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1146,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:14Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1146,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.626813,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:14Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"be4ccd8d267738073d4069c87557c1df","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240574,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3NH0.QW9GXJJG6VOB9yAsrLVbDEyPw2TwA4NLnQAVYSFq-Fw"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"be4ccd8d267738073d4069c87557c1df","responseTime":27,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6"},"level":"info","message":"Attempting to finish experiment","requestID":"be4ccd8d267738073d4069c87557c1df"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"78e66d70-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1147,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:14Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1147,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.741608,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:14Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/91c236dd-f386-431a-a1bf-6d564b513aee","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"78e66d70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/91c236dd-f386-431a-a1bf-6d564b513aee","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240574,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3NH0.QW9GXJJG6VOB9yAsrLVbDEyPw2TwA4NLnQAVYSFq-Fw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"78e66d70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/91c236dd-f386-431a-a1bf-6d564b513aee","device":"b4ecf98b-f54f-446b-99d9-85affdbfe61e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"be3b6f40-0fa5-4062-b0b7-34388e346da9","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"be3b6f40-0fa5-4062-b0b7-34388e346da9","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"be3b6f40-0fa5-4062-b0b7-34388e346da9","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/91c236dd-f386-431a-a1bf-6d564b513aee' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/91c236dd-f386-431a-a1bf-6d564b513aee' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"91c236dd-f386-431a-a1bf-6d564b513aee","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F91c236dd-f386-431a-a1bf-6d564b513aee': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F91c236dd-f386-431a-a1bf-6d564b513aee","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"e3a5cbcb-356c-4614-a25d-fdd5fbdf1386","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240574.932887} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3cc6a47e-15ea-42b3-aeb4-e8c931a28a1a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240574.9332283} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"78e66d70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"5eaa37facfb83817ef82d78fdae730e2","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5eaa37facfb83817ef82d78fdae730e2","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"6c78ad9044b84a9c569e30486865f74d","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/91c236dd-f386-431a-a1bf-6d564b513aee"}}},"level":"info","message":"received a callback","requestID":"5eaa37facfb83817ef82d78fdae730e2"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6c78ad9044b84a9c569e30486865f74d","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/91c236dd-f386-431a-a1bf-6d564b513aee"}}},"level":"info","message":"received a callback","requestID":"6c78ad9044b84a9c569e30486865f74d"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"78e66d70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/91c236dd-f386-431a-a1bf-6d564b513aee 204 60ms","method":"DELETE","requestID":"78e66d70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":60,"status":204,"url":"/peerconnections/91c236dd-f386-431a-a1bf-6d564b513aee"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6"},"level":"info","message":"Successfully finished experiment","requestID":"be4ccd8d267738073d4069c87557c1df"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"78f51370-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1148,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:15Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4ecf98b-f54f-446b-99d9-85affdbfe61e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"52e38a98-1a4d-4360-843b-dac3a02ac700","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240575.0196173} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1148,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.100468,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"78f51370-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"78f51370-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"78f51370-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e/signaling 200 8ms","method":"POST","requestID":"78f51370-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5d1d2b1f-9224-4b6b-82c8-143ea4063cf6': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5d1d2b1f-9224-4b6b-82c8-143ea4063cf6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"9efe94dd-af3f-4350-b7a2-4a991d692321","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240575.0233386} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4b8a5b40-fe9a-4a79-92ea-70d355d2a0f6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240575.0236413} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"be4ccd8d267738073d4069c87557c1df","responseTime":11,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"78f6c120-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1149,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:15Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe3b6f40-0fa5-4062-b0b7-34388e346da9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cfaf5904-71de-4e0d-8199-358f881ac402","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240575.0301774} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1149,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.391289,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"78f6c120-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"78f6c120-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"78f6c120-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/be3b6f40-0fa5-4062-b0b7-34388e346da9/signaling 200 32ms","method":"POST","requestID":"78f6c120-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6","requestID":"be4ccd8d267738073d4069c87557c1df"} gateway-1 | {"time_local":"18/Jun/2025:09:56:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.243","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"be4ccd8d267738073d4069c87557c1df"} experiment-1 | {"level":"info","message":"DELETE /experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6 204 241ms","method":"DELETE","requestID":"be4ccd8d267738073d4069c87557c1df","responseTime":241,"status":204,"url":"/experiments/5d1d2b1f-9224-4b6b-82c8-143ea4063cf6"} gateway-1 | {"time_local":"18/Jun/2025:09:56:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3158","request_time":"4.090","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"9ac259546e35dbc4e162972f81e82a4f"} device-1 | {"level":"info","message":"postDevices called","requestID":"e8810433686f2989144d3703f563b209"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3NX0.oLLbdDEQ8cz5WPC0zvs4a0jPOKHc7VtcwpRpekI4Fts","level":"info","message":"auth send jwt","requestID":"e8810433686f2989144d3703f563b209"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e8810433686f2989144d3703f563b209","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 196ms","method":"POST","requestID":"5eaa37facfb83817ef82d78fdae730e2","responseTime":196,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 173ms","method":"POST","requestID":"6c78ad9044b84a9c569e30486865f74d","responseTime":173,"status":200,"url":"/callbacks/experiment"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1150,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:15Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1150,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.022142,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:15Z"} gateway-1 | {"time_local":"18/Jun/2025:09:56:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.199","http_referrer":"","http_user_agent":"node-fetch","requestID":"5eaa37facfb83817ef82d78fdae730e2"} gateway-1 | {"time_local":"18/Jun/2025:09:56:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3407","request_time":"2.795","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"aa2833087d6eee10dd5674d5fc06b0d0"} gateway-1 | {"time_local":"18/Jun/2025:09:56:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.205","http_referrer":"","http_user_agent":"node-fetch","requestID":"6c78ad9044b84a9c569e30486865f74d"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/be3b6f40-0fa5-4062-b0b7-34388e346da9' closed"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e8810433686f2989144d3703f563b209","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240575,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3NX0.oLLbdDEQ8cz5WPC0zvs4a0jPOKHc7VtcwpRpekI4Fts"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"e8810433686f2989144d3703f563b209","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/b4ecf98b-f54f-446b-99d9-85affdbfe61e' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"7c45b039-8d0b-4456-9a95-57caf9797172","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240575.157588} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e8810433686f2989144d3703f563b209","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6d085671-1db8-448f-9241-872f7ceca4c9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240575.1621447} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"e8810433686f2989144d3703f563b209","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"6237b5fb-06a0-4d06-a017-a074b44d9af8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240575.1713192} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"75f24615-f4bb-4a90-87f1-d0b779b2c99c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240575.171374} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"e8810433686f2989144d3703f563b209","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:15.171277264Z"}]},"request_id":"01723cf0-6c42-4dfd-b3eb-209b34b6d856","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240575.17539} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e8810433686f2989144d3703f563b209","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"e8810433686f2989144d3703f563b209"} gateway-1 | {"time_local":"18/Jun/2025:09:56:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e8810433686f2989144d3703f563b209"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"e8810433686f2989144d3703f563b209","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3NX0.oLLbdDEQ8cz5WPC0zvs4a0jPOKHc7VtcwpRpekI4Fts","level":"info","message":"auth send jwt","requestID":"fdd56a0f8a039137775708dcb066d047"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"fdd56a0f8a039137775708dcb066d047","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"fdd56a0f8a039137775708dcb066d047"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1151,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:15Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1151,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.702661,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:15Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"fdd56a0f8a039137775708dcb066d047","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240575,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3NX0.oLLbdDEQ8cz5WPC0zvs4a0jPOKHc7VtcwpRpekI4Fts"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"fdd56a0f8a039137775708dcb066d047","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9031fa78-d604-41f0-9563-106f9fd8cadd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240575.1957307} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"fdd56a0f8a039137775708dcb066d047","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9053a405-935c-4e81-a86f-b1859c0cd6ed","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240575.1998336} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"fdd56a0f8a039137775708dcb066d047","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"5d4043a3-1cfe-4c2f-9f70-30c80341d4a7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240575.2090065} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c09c47d6-193c-496c-9c90-70778b474797","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240575.2091773} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"fdd56a0f8a039137775708dcb066d047","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:15.208977218Z"}]},"request_id":"2952ad18-1b43-4342-84a3-de0e99cb3701","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240575.2129345} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"fdd56a0f8a039137775708dcb066d047","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"fdd56a0f8a039137775708dcb066d047"} gateway-1 | {"time_local":"18/Jun/2025:09:56:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fdd56a0f8a039137775708dcb066d047"} device-1 | {"level":"info","message":"POST /devices? 201 33ms","method":"POST","requestID":"fdd56a0f8a039137775708dcb066d047","responseTime":33,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Nn0.HFQAp_GwLqEWQOwSOSgwh8AvWWgcGh2HmWZykWCYu5E","level":"info","message":"auth send jwt","requestID":"6b8fe794ef12f0000912264d72efc0db"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6b8fe794ef12f0000912264d72efc0db","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"6b8fe794ef12f0000912264d72efc0db"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1152,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:16Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1152,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.646064,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:16Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6b8fe794ef12f0000912264d72efc0db","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240576,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Nn0.HFQAp_GwLqEWQOwSOSgwh8AvWWgcGh2HmWZykWCYu5E"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6b8fe794ef12f0000912264d72efc0db","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:15.208977218Z"}]},"request_id":"01914b68-7321-44ca-86a4-151b6f3c4ac3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240576.1276786} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6b8fe794ef12f0000912264d72efc0db","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9f681d76-c9eb-4fee-8dc9-8c5752dbae52","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240576.1315897} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"6b8fe794ef12f0000912264d72efc0db","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:15.208977218Z"}]},"request_id":"12c9e874-f34a-40a2-9520-16ba40140491","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240576.166403} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6b8fe794ef12f0000912264d72efc0db","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"6b8fe794ef12f0000912264d72efc0db"} device-1 | {"level":"info","message":"PATCH /devices/599f2c1e-c341-4906-a38e-b3f8f4964627 200 49ms","method":"PATCH","requestID":"6b8fe794ef12f0000912264d72efc0db","responseTime":49,"status":200,"url":"/devices/599f2c1e-c341-4906-a38e-b3f8f4964627"} gateway-1 | {"time_local":"18/Jun/2025:09:56:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/599f2c1e-c341-4906-a38e-b3f8f4964627 HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.052","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"6b8fe794ef12f0000912264d72efc0db"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Nn0.HFQAp_GwLqEWQOwSOSgwh8AvWWgcGh2HmWZykWCYu5E","level":"info","message":"auth send jwt","requestID":"8d50b366bc0129deb8327f6589096a1e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8d50b366bc0129deb8327f6589096a1e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"8d50b366bc0129deb8327f6589096a1e"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1153,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:16Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1153,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.690764,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:16Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8d50b366bc0129deb8327f6589096a1e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240576,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3Nn0.HFQAp_GwLqEWQOwSOSgwh8AvWWgcGh2HmWZykWCYu5E"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"8d50b366bc0129deb8327f6589096a1e","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"8d50b366bc0129deb8327f6589096a1e"} gateway-1 | {"time_local":"18/Jun/2025:09:56:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/599f2c1e-c341-4906-a38e-b3f8f4964627/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.041","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"8d50b366bc0129deb8327f6589096a1e"} device-1 | {"level":"info","message":"POST /devices/599f2c1e-c341-4906-a38e-b3f8f4964627/websocket 200 38ms","method":"POST","requestID":"8d50b366bc0129deb8327f6589096a1e","responseTime":38,"status":200,"url":"/devices/599f2c1e-c341-4906-a38e-b3f8f4964627/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2f409ba6cf2dafcb28e24f1c3ef26196","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2f409ba6cf2dafcb28e24f1c3ef26196","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/9f2282f5-46d4-4307-ab19-a326396b8929/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2f409ba6cf2dafcb28e24f1c3ef26196"} device-1 | {"level":"info","message":"OPTIONS /devices/9f2282f5-46d4-4307-ab19-a326396b8929/websocket 200 1ms","method":"OPTIONS","requestID":"2f409ba6cf2dafcb28e24f1c3ef26196","responseTime":1,"status":200,"url":"/devices/9f2282f5-46d4-4307-ab19-a326396b8929/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE","level":"info","message":"auth send jwt","requestID":"eff3794196a1452751dbf110787d736b"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"eff3794196a1452751dbf110787d736b","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"eff3794196a1452751dbf110787d736b"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1154,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1154,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.125848,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"eff3794196a1452751dbf110787d736b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240577,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"eff3794196a1452751dbf110787d736b","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"eff3794196a1452751dbf110787d736b"} device-1 | {"level":"info","message":"POST /devices/9f2282f5-46d4-4307-ab19-a326396b8929/websocket 200 21ms","method":"POST","requestID":"eff3794196a1452751dbf110787d736b","responseTime":21,"status":200,"url":"/devices/9f2282f5-46d4-4307-ab19-a326396b8929/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:56:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/9f2282f5-46d4-4307-ab19-a326396b8929/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.028","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"eff3794196a1452751dbf110787d736b"} device-1 | {"level":"info","message":"device 'http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"3285fdf92bc7b8b8fb48cbca4c4c2a2c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3285fdf92bc7b8b8fb48cbca4c4c2a2c","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/9f2282f5-46d4-4307-ab19-a326396b8929? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3285fdf92bc7b8b8fb48cbca4c4c2a2c"} device-1 | {"level":"info","message":"OPTIONS /devices/9f2282f5-46d4-4307-ab19-a326396b8929? 200 1ms","method":"OPTIONS","requestID":"3285fdf92bc7b8b8fb48cbca4c4c2a2c","responseTime":1,"status":200,"url":"/devices/9f2282f5-46d4-4307-ab19-a326396b8929?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE","level":"info","message":"auth send jwt","requestID":"72404f19c56fd3cb0a4c0cb53dcc8b7f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"72404f19c56fd3cb0a4c0cb53dcc8b7f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"72404f19c56fd3cb0a4c0cb53dcc8b7f"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1155,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1155,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.21131,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"72404f19c56fd3cb0a4c0cb53dcc8b7f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240577,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"72404f19c56fd3cb0a4c0cb53dcc8b7f","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:15.171277264Z"}]},"request_id":"c1941f78-aa6e-4f33-8c6b-2ea9a4738641","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240577.6191967} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"72404f19c56fd3cb0a4c0cb53dcc8b7f","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5081e5d8-ad5d-4517-a11c-9f301d8d3246","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240577.62328} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"72404f19c56fd3cb0a4c0cb53dcc8b7f","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:15.171277264Z"}]},"request_id":"68cf1053-1068-45cb-92ba-0e4a0078a092","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240577.6337795} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"72404f19c56fd3cb0a4c0cb53dcc8b7f","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"72404f19c56fd3cb0a4c0cb53dcc8b7f"} device-1 | {"level":"info","message":"PATCH /devices/9f2282f5-46d4-4307-ab19-a326396b8929? 200 26ms","method":"PATCH","requestID":"72404f19c56fd3cb0a4c0cb53dcc8b7f","responseTime":26,"status":200,"url":"/devices/9f2282f5-46d4-4307-ab19-a326396b8929?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE","level":"info","message":"auth send jwt","requestID":"1f16a7edcaa949c7df609884d26a4e88"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1f16a7edcaa949c7df609884d26a4e88","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1f16a7edcaa949c7df609884d26a4e88"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1156,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1156,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.749756,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"1f16a7edcaa949c7df609884d26a4e88","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240577,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1f16a7edcaa949c7df609884d26a4e88","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:15.171277264Z"}]},"request_id":"e6820c6d-9ab1-42b6-a106-90f4c33703fb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240577.6495218} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1f16a7edcaa949c7df609884d26a4e88","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1f16a7edcaa949c7df609884d26a4e88"} device-1 | {"level":"info","message":"GET /devices/9f2282f5-46d4-4307-ab19-a326396b8929? 200 10ms","method":"GET","requestID":"1f16a7edcaa949c7df609884d26a4e88","responseTime":10,"status":200,"url":"/devices/9f2282f5-46d4-4307-ab19-a326396b8929?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/9f2282f5-46d4-4307-ab19-a326396b8929? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.029","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"72404f19c56fd3cb0a4c0cb53dcc8b7f"} gateway-1 | {"time_local":"18/Jun/2025:09:56:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9f2282f5-46d4-4307-ab19-a326396b8929? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1f16a7edcaa949c7df609884d26a4e88"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE","level":"info","message":"auth send jwt","requestID":"b6d2b8eb5e835791cbf297d3a58d944a"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b6d2b8eb5e835791cbf297d3a58d944a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"b6d2b8eb5e835791cbf297d3a58d944a"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1157,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1157,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.664172,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b6d2b8eb5e835791cbf297d3a58d944a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240577,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b6d2b8eb5e835791cbf297d3a58d944a","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:15.208977218Z"}]},"request_id":"b3e6287d-b89e-4317-b027-2474da5c119c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240577.6628542} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b6d2b8eb5e835791cbf297d3a58d944a","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"b6d2b8eb5e835791cbf297d3a58d944a"} device-1 | {"level":"info","message":"GET /devices/599f2c1e-c341-4906-a38e-b3f8f4964627? 200 9ms","method":"GET","requestID":"b6d2b8eb5e835791cbf297d3a58d944a","responseTime":9,"status":200,"url":"/devices/599f2c1e-c341-4906-a38e-b3f8f4964627?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/599f2c1e-c341-4906-a38e-b3f8f4964627? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b6d2b8eb5e835791cbf297d3a58d944a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE","level":"info","message":"auth send jwt","requestID":"c96ec010df327b5fd10eb5ac659361e7"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c96ec010df327b5fd10eb5ac659361e7","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"c96ec010df327b5fd10eb5ac659361e7"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1158,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1158,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.792719,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c96ec010df327b5fd10eb5ac659361e7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240577,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"c96ec010df327b5fd10eb5ac659361e7","responseTime":27,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f"},"level":"info","message":"Attempting to run experiment","requestID":"c96ec010df327b5fd10eb5ac659361e7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f"},"level":"info","message":"Attempting to book experiment","requestID":"c96ec010df327b5fd10eb5ac659361e7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f"},"level":"info","message":"Successfully booked experiment","requestID":"c96ec010df327b5fd10eb5ac659361e7"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7a95cb20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7a961940-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1159,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1159,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.670575,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7a95cb20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240577,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7a95cb20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1160,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1160,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.678052,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7a961940-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240577,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"7a961940-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:15.171277264Z"}]},"request_id":"26942bbd-2a6d-44cc-a071-fbf021965ade","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240577.7535903} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"7a95cb20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:15.208977218Z"}]},"request_id":"fcd86a04-710a-4829-acf9-39c13dfea96d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240577.7565384} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7a95cb20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/9f2282f5-46d4-4307-ab19-a326396b8929? 200 10ms","method":"GET","requestID":"7a95cb20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/9f2282f5-46d4-4307-ab19-a326396b8929?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"7a961940-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7a961940-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/599f2c1e-c341-4906-a38e-b3f8f4964627? 200 11ms","method":"GET","requestID":"7a961940-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/599f2c1e-c341-4906-a38e-b3f8f4964627?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f"},"level":"info","message":"Setting up experiment","requestID":"c96ec010df327b5fd10eb5ac659361e7"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"c96ec010df327b5fd10eb5ac659361e7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"c96ec010df327b5fd10eb5ac659361e7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f"},"level":"info","message":"Successfully locked booking for experiment","requestID":"c96ec010df327b5fd10eb5ac659361e7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f"},"level":"info","message":"Successfully set up experiment","requestID":"c96ec010df327b5fd10eb5ac659361e7"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7a9ea4c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7a9ecbd0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f"},"level":"info","message":"Successfully running experiment","requestID":"c96ec010df327b5fd10eb5ac659361e7"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1161,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1161,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.657954,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1162,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7a9ea4c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240577,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7a9ea4c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1162,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.536062,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7a9ecbd0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240577,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"7a9ecbd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:15.171277264Z"}]},"request_id":"cf896c50-7cf3-46a2-adc8-131d1f2e6cea","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240577.811889} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"7a9ea4c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:15.208977218Z"}]},"request_id":"018b0092-82ae-4f43-95e5-57f5d156abe7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240577.812499} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"7a9ecbd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7a9ea4c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/9f2282f5-46d4-4307-ab19-a326396b8929? 200 12ms","method":"GET","requestID":"7a9ea4c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/9f2282f5-46d4-4307-ab19-a326396b8929?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7a9ecbd0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/599f2c1e-c341-4906-a38e-b3f8f4964627? 200 11ms","method":"GET","requestID":"7a9ecbd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/599f2c1e-c341-4906-a38e-b3f8f4964627?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7aa47120-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffe0556b7-1c8a-4977-ba08-c5d0e8582e9f#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffe0556b7-1c8a-4977-ba08-c5d0e8582e9f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"825bc92a-f801-4198-8ee6-6991c49e94e3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240577.8454177} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"99ee4b24-bbad-41db-b388-0c492cd09f0f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240577.8456507} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1163,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"c96ec010df327b5fd10eb5ac659361e7","responseTime":40,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"109235b9-2db6-4b87-8788-cd79d555d1e5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240577.8484995} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1163,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.18339,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7aa47120-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"7aa47120-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7aa47120-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/9f2282f5-46d4-4307-ab19-a326396b8929/signaling 200 10ms","method":"POST","requestID":"7aa47120-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/9f2282f5-46d4-4307-ab19-a326396b8929/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7aa66cf0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"c96ec010df327b5fd10eb5ac659361e7"} experiment-1 | {"level":"info","message":"POST /experiments? 201 186ms","method":"POST","requestID":"c96ec010df327b5fd10eb5ac659361e7","responseTime":186,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1216","request_time":"0.190","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c96ec010df327b5fd10eb5ac659361e7"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1164,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:17Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE","level":"info","message":"auth send jwt","requestID":"10f19dd65dea894aae1bd437e9ec9310"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7ff7bdd2-509e-4a47-966f-02fedc52f519","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240577.8612185} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"10f19dd65dea894aae1bd437e9ec9310","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1164,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.877806,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:17Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"10f19dd65dea894aae1bd437e9ec9310"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7aa66cf0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"7aa66cf0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1165,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1165,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.820143,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"10f19dd65dea894aae1bd437e9ec9310","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240577,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"10f19dd65dea894aae1bd437e9ec9310","responseTime":27,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7aa66cf0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/599f2c1e-c341-4906-a38e-b3f8f4964627/signaling 200 40ms","method":"POST","requestID":"7aa66cf0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":40,"status":200,"url":"/devices/599f2c1e-c341-4906-a38e-b3f8f4964627/signaling"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:15.171277264Z"}]},"request_id":"12550cef-1053-4e9e-b818-c8a3b8fde131","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240577.8961818} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"c96ec010df327b5fd10eb5ac659361e7"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"10f19dd65dea894aae1bd437e9ec9310","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7aacfca0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7aad23b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"10f19dd65dea894aae1bd437e9ec9310"} gateway-1 | {"time_local":"18/Jun/2025:09:56:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9f2282f5-46d4-4307-ab19-a326396b8929? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"10f19dd65dea894aae1bd437e9ec9310"} device-1 | {"level":"info","message":"GET /devices/9f2282f5-46d4-4307-ab19-a326396b8929? 200 38ms","method":"GET","requestID":"10f19dd65dea894aae1bd437e9ec9310","responseTime":38,"status":200,"url":"/devices/9f2282f5-46d4-4307-ab19-a326396b8929?"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Received request.","req_id":1166,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"client_addr":"127.0.0.1:42830","level":"info","msg":"Sent response.","req_id":1166,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.96602,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1167,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7aacfca0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240577,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7aacfca0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1167,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.788974,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7aad23b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240577,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7aad23b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE","level":"info","message":"auth send jwt","requestID":"93db655464d4db73cf1549c1a5cf04ef"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"93db655464d4db73cf1549c1a5cf04ef","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"93db655464d4db73cf1549c1a5cf04ef"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:15.171277264Z"}]},"request_id":"559387df-e80a-42a4-bd8d-a3edcf94baf8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240577.9054363} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"7aacfca0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:15.208977218Z"}]},"request_id":"bf980c12-6841-4292-8d33-a37c7e9ee39d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240577.9065843} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"7aad23b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7aacfca0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1168,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1168,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.786054,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:17Z"} device-1 | {"level":"info","message":"GET /devices/9f2282f5-46d4-4307-ab19-a326396b8929? 200 11ms","method":"GET","requestID":"7aacfca0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/9f2282f5-46d4-4307-ab19-a326396b8929?"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"93db655464d4db73cf1549c1a5cf04ef","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240577,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"93db655464d4db73cf1549c1a5cf04ef","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7aad23b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/599f2c1e-c341-4906-a38e-b3f8f4964627? 200 13ms","method":"GET","requestID":"7aad23b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/599f2c1e-c341-4906-a38e-b3f8f4964627?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:15.208977218Z"}]},"request_id":"5a265212-66cc-4e55-93b4-589258ea1dc0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240577.9124882} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f"},"level":"info","message":"Building connection plan","requestID":"c96ec010df327b5fd10eb5ac659361e7"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"82b01b1e-b90e-4a95-b93f-9ad22d2eb31e"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"81b935cc-c7f8-434a-a88b-86df2c295bfb"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"56d3fb1f-f77d-423c-94ef-301a61d69dab"}]},"level":"info","message":"Built pairwise service configurations","requestID":"c96ec010df327b5fd10eb5ac659361e7"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"c96ec010df327b5fd10eb5ac659361e7"} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"93db655464d4db73cf1549c1a5cf04ef","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"7ab31720-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"93db655464d4db73cf1549c1a5cf04ef"} gateway-1 | {"time_local":"18/Jun/2025:09:56:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/599f2c1e-c341-4906-a38e-b3f8f4964627? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"93db655464d4db73cf1549c1a5cf04ef"} device-1 | {"level":"info","message":"GET /devices/599f2c1e-c341-4906-a38e-b3f8f4964627? 200 35ms","method":"GET","requestID":"93db655464d4db73cf1549c1a5cf04ef","responseTime":35,"status":200,"url":"/devices/599f2c1e-c341-4906-a38e-b3f8f4964627?"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1169,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1169,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.91071,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:17Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7ab31720-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240577,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU3N30.432n6LMVDqTHi8OoSHu_U1TXNG00awxESyG2OUt8LoE"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"7ab31720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"4d30a368-b6fd-42d1-9c3c-7057bc3d6386","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240577.9509907} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9beee9ca-54f1-4451-a6b4-b31e8a50ae10","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240577.9511585} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"7ab31720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"7ab31720-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"7ab31720-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/8cb48274-9b60-41fc-876a-50cc3c851d9a'","requestID":"7ab31720-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/8cb48274-9b60-41fc-876a-50cc3c851d9a'","requestID":"7ab31720-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"7ab31720-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 24ms","method":"POST","requestID":"7ab31720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":24,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"7ab31720-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"c96ec010df327b5fd10eb5ac659361e7"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7abd9e70-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1170,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:18Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a10742e7-3840-4bc3-9621-6d68dae3fc6e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240578.0111825} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1170,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.357583,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7abd9e70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 25ms","method":"POST","requestID":"7abd9e70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":25,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7abd9e70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/9f2282f5-46d4-4307-ab19-a326396b8929/signaling 200 28ms","method":"POST","requestID":"7abd9e70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/devices/9f2282f5-46d4-4307-ab19-a326396b8929/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7ac23250-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1171,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:18Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7a2b4e1a-ab09-4598-9663-0843d68f7666","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240578.041271} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1171,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.51511,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:18Z"} device-1 | {"device":"9f2282f5-46d4-4307-ab19-a326396b8929","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"9f2282f5-46d4-4307-ab19-a326396b8929","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7ac23250-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"7ac23250-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7ac23250-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/599f2c1e-c341-4906-a38e-b3f8f4964627/signaling 200 9ms","method":"POST","requestID":"7ac23250-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/599f2c1e-c341-4906-a38e-b3f8f4964627/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 7123151008934831367 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:l8wP\r\na=ice-pwd:GSD2j3ZMatffNKhb7a6aW9GU\r\na=ice-options:trickle\r\na=fingerprint:sha-256 F8:01:06:59:C8:9F:3B:82:E9:32:83:0B:1F:B1:08:C4:FA:E3:D2:D2:69:A2:60:2E:CF:58:3B:B3:8A:D0:62:CA\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"9f2282f5-46d4-4307-ab19-a326396b8929","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"device":"599f2c1e-c341-4906-a38e-b3f8f4964627","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"8cb48274-9b60-41fc-876a-50cc3c851d9a","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"599f2c1e-c341-4906-a38e-b3f8f4964627","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"599f2c1e-c341-4906-a38e-b3f8f4964627","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"599f2c1e-c341-4906-a38e-b3f8f4964627","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"599f2c1e-c341-4906-a38e-b3f8f4964627","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/8cb48274-9b60-41fc-876a-50cc3c851d9a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8cb48274-9b60-41fc-876a-50cc3c851d9a","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"7d3066e466c02c91733b0b09ff6f6bf3","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7d3066e466c02c91733b0b09ff6f6bf3","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/8cb48274-9b60-41fc-876a-50cc3c851d9a"}}},"level":"info","message":"received a callback","requestID":"7d3066e466c02c91733b0b09ff6f6bf3"} device-1 | {"content":{"candidate":"candidate:1286532739 1 udp 2113937151 eeba9770-76ee-4307-b9a3-177def5c605e.local 46179 typ host generation 0 ufrag l8wP network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"9f2282f5-46d4-4307-ab19-a326396b8929","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} gateway-1 | {"time_local":"18/Jun/2025:09:56:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch","requestID":"7d3066e466c02c91733b0b09ff6f6bf3"} device-1 | {"content":{"candidate":"candidate:3750055824 1 udp 1677729535 141.24.211.56 46179 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag l8wP network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"9f2282f5-46d4-4307-ab19-a326396b8929","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"9f2282f5-46d4-4307-ab19-a326396b8929","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"7d3066e466c02c91733b0b09ff6f6bf3","responseTime":8,"status":200,"url":"/callbacks/experiment"} device-1 | {"device":"9f2282f5-46d4-4307-ab19-a326396b8929","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929'"} device-1 | {"data":{"peerconnection":"8cb48274-9b60-41fc-876a-50cc3c851d9a","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"599f2c1e-c341-4906-a38e-b3f8f4964627","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"599f2c1e-c341-4906-a38e-b3f8f4964627","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"9f2282f5-46d4-4307-ab19-a326396b8929","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"data":{"peerconnection":"8cb48274-9b60-41fc-876a-50cc3c851d9a","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/8cb48274-9b60-41fc-876a-50cc3c851d9a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8cb48274-9b60-41fc-876a-50cc3c851d9a","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"9bd96112cf27105f767c33bad2a01415","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"9bd96112cf27105f767c33bad2a01415","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/8cb48274-9b60-41fc-876a-50cc3c851d9a"}}},"level":"info","message":"received a callback","requestID":"9bd96112cf27105f767c33bad2a01415"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"7bf6e1c0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1172,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:20Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8cb48274-9b60-41fc-876a-50cc3c851d9a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0b3a8525-7331-4b14-bc09-07b0240c28b6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240580.0647035} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1172,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.818722,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/8cb48274-9b60-41fc-876a-50cc3c851d9a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7bf6e1c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/8cb48274-9b60-41fc-876a-50cc3c851d9a","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"7bf6e1c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"7bf6e1c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/8cb48274-9b60-41fc-876a-50cc3c851d9a 200 9ms","method":"GET","requestID":"7bf6e1c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/peerconnections/8cb48274-9b60-41fc-876a-50cc3c851d9a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 32ms","method":"POST","requestID":"9bd96112cf27105f767c33bad2a01415","responseTime":32,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.035","http_referrer":"","http_user_agent":"node-fetch","requestID":"9bd96112cf27105f767c33bad2a01415"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7bfb4e90-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1173,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:20Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d98a349d-d062-4b96-9785-a140513bcde2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240580.0933883} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1173,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.369069,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7bfb4e90-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"7bfb4e90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7bfb4e90-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/599f2c1e-c341-4906-a38e-b3f8f4964627/signaling 200 8ms","method":"POST","requestID":"7bfb4e90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/599f2c1e-c341-4906-a38e-b3f8f4964627/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7bfcd530-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1174,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:20Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b4f2ad6a-2283-44b3-bb70-1c18b9a5e853","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240580.104091} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1174,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.907935,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7bfcd530-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"7bfcd530-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7bfcd530-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/9f2282f5-46d4-4307-ab19-a326396b8929/signaling 200 9ms","method":"POST","requestID":"7bfcd530-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/9f2282f5-46d4-4307-ab19-a326396b8929/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4MH0.8O8zSg5pUhezsX5sKH-HbEHJKiMPBT60icGIT8AZj-s","level":"info","message":"auth send jwt","requestID":"56a625d4fb8550e32cdb91e54261f4df"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"56a625d4fb8550e32cdb91e54261f4df","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f","requestID":"56a625d4fb8550e32cdb91e54261f4df"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1175,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:20Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1175,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.136565,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"56a625d4fb8550e32cdb91e54261f4df","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240580,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4MH0.8O8zSg5pUhezsX5sKH-HbEHJKiMPBT60icGIT8AZj-s"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"56a625d4fb8550e32cdb91e54261f4df","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f","requestID":"56a625d4fb8550e32cdb91e54261f4df"} gateway-1 | {"time_local":"18/Jun/2025:09:56:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f HTTP/1.1","status": "200","body_bytes_sent":"1289","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"56a625d4fb8550e32cdb91e54261f4df"} experiment-1 | {"level":"info","message":"GET /experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f 200 13ms","method":"GET","requestID":"56a625d4fb8550e32cdb91e54261f4df","responseTime":13,"status":200,"url":"/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4MH0.8O8zSg5pUhezsX5sKH-HbEHJKiMPBT60icGIT8AZj-s","level":"info","message":"auth send jwt","requestID":"dc8dc7e26834c8cb4242891144e88f4e"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"dc8dc7e26834c8cb4242891144e88f4e","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f","requestID":"dc8dc7e26834c8cb4242891144e88f4e"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1176,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:20Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1176,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.197659,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:20Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"dc8dc7e26834c8cb4242891144e88f4e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240580,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4MH0.8O8zSg5pUhezsX5sKH-HbEHJKiMPBT60icGIT8AZj-s"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"dc8dc7e26834c8cb4242891144e88f4e","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f"},"level":"info","message":"Attempting to finish experiment","requestID":"dc8dc7e26834c8cb4242891144e88f4e"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"7c0ba240-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1177,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:20Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1177,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.79341,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:20Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/8cb48274-9b60-41fc-876a-50cc3c851d9a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7c0ba240-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/8cb48274-9b60-41fc-876a-50cc3c851d9a","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240580,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4MH0.8O8zSg5pUhezsX5sKH-HbEHJKiMPBT60icGIT8AZj-s"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"7c0ba240-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/8cb48274-9b60-41fc-876a-50cc3c851d9a","device":"9f2282f5-46d4-4307-ab19-a326396b8929","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"599f2c1e-c341-4906-a38e-b3f8f4964627","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"599f2c1e-c341-4906-a38e-b3f8f4964627","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"599f2c1e-c341-4906-a38e-b3f8f4964627","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/8cb48274-9b60-41fc-876a-50cc3c851d9a' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/8cb48274-9b60-41fc-876a-50cc3c851d9a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8cb48274-9b60-41fc-876a-50cc3c851d9a","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8cb48274-9b60-41fc-876a-50cc3c851d9a': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8cb48274-9b60-41fc-876a-50cc3c851d9a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"bd15c601-bd84-4899-9adf-8d2896e38db6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240580.2111173} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d91ce9cd-058e-4db5-84d3-ba7793d99fa9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240580.2112734} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"534eea8a275457b6645288352812ce79","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"7c0ba240-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"534eea8a275457b6645288352812ce79","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"9a25ad98b06084f241cbd07e534eee4f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9a25ad98b06084f241cbd07e534eee4f","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/8cb48274-9b60-41fc-876a-50cc3c851d9a"}}},"level":"info","message":"received a callback","requestID":"534eea8a275457b6645288352812ce79"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/8cb48274-9b60-41fc-876a-50cc3c851d9a"}}},"level":"info","message":"received a callback","requestID":"9a25ad98b06084f241cbd07e534eee4f"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"7c0ba240-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/8cb48274-9b60-41fc-876a-50cc3c851d9a 204 55ms","method":"DELETE","requestID":"7c0ba240-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":55,"status":204,"url":"/peerconnections/8cb48274-9b60-41fc-876a-50cc3c851d9a"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f"},"level":"info","message":"Successfully finished experiment","requestID":"dc8dc7e26834c8cb4242891144e88f4e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7c1677b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1178,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:20Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F599f2c1e-c341-4906-a38e-b3f8f4964627","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"24818c67-864a-4011-b98f-70c2e964a92e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240580.2913578} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1178,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.636875,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7c1677b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 25ms","method":"POST","requestID":"7c1677b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":25,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7c1677b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/599f2c1e-c341-4906-a38e-b3f8f4964627/signaling 200 28ms","method":"POST","requestID":"7c1677b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/devices/599f2c1e-c341-4906-a38e-b3f8f4964627/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7c1b0b90-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1179,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:20Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffe0556b7-1c8a-4977-ba08-c5d0e8582e9f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffe0556b7-1c8a-4977-ba08-c5d0e8582e9f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"57eacbd2-4716-426a-bd04-72387771d226","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240580.3010526} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f2282f5-46d4-4307-ab19-a326396b8929","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"153ffb55-5d97-4f10-9b86-456646ceef37","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240580.3011525} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6b5b492d-cacd-4c69-b246-4da094d3f25b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240580.3012347} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1179,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.400809,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7c1b0b90-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"7c1b0b90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"dc8dc7e26834c8cb4242891144e88f4e","responseTime":37,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7c1b0b90-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/9f2282f5-46d4-4307-ab19-a326396b8929/signaling 200 9ms","method":"POST","requestID":"7c1b0b90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/9f2282f5-46d4-4307-ab19-a326396b8929/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f","requestID":"dc8dc7e26834c8cb4242891144e88f4e"} gateway-1 | {"time_local":"18/Jun/2025:09:56:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.236","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dc8dc7e26834c8cb4242891144e88f4e"} experiment-1 | {"level":"info","message":"DELETE /experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f 204 233ms","method":"DELETE","requestID":"dc8dc7e26834c8cb4242891144e88f4e","responseTime":233,"status":204,"url":"/experiments/fe0556b7-1c8a-4977-ba08-c5d0e8582e9f"} gateway-1 | {"time_local":"18/Jun/2025:09:56:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3207","request_time":"4.188","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"3041bc1d14b89cbae83f4f431df77891"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 188ms","method":"POST","requestID":"534eea8a275457b6645288352812ce79","responseTime":188,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.191","http_referrer":"","http_user_agent":"node-fetch","requestID":"534eea8a275457b6645288352812ce79"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 188ms","method":"POST","requestID":"9a25ad98b06084f241cbd07e534eee4f","responseTime":188,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.191","http_referrer":"","http_user_agent":"node-fetch","requestID":"9a25ad98b06084f241cbd07e534eee4f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4MH0.8O8zSg5pUhezsX5sKH-HbEHJKiMPBT60icGIT8AZj-s","level":"info","message":"auth send jwt","requestID":"643fe70d7fffdbf12bd441e00e22b892"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"643fe70d7fffdbf12bd441e00e22b892","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"643fe70d7fffdbf12bd441e00e22b892"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1180,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:20Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1180,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.746084,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:20Z"} gateway-1 | {"time_local":"18/Jun/2025:09:56:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3402","request_time":"2.827","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1a5a677feb8e3cb5cf15de7376b456f0"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"643fe70d7fffdbf12bd441e00e22b892","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240580,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4MH0.8O8zSg5pUhezsX5sKH-HbEHJKiMPBT60icGIT8AZj-s"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"643fe70d7fffdbf12bd441e00e22b892","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/599f2c1e-c341-4906-a38e-b3f8f4964627' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"59519f45-c47d-4229-909a-84ba6b78134a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240580.447611} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"643fe70d7fffdbf12bd441e00e22b892","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"959b84ba-6de9-4a86-9d73-6b0add948237","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240580.4519906} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/9f2282f5-46d4-4307-ab19-a326396b8929' closed"} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"643fe70d7fffdbf12bd441e00e22b892","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"e173f25d-870e-4f94-b031-457dbc0de7b7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240580.4606097} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7f6c470b-0558-42bf-9305-621fc050337e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240580.46065} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"643fe70d7fffdbf12bd441e00e22b892","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:20.460574998Z"}]},"request_id":"cd49c974-94a8-46fb-bf5c-8945ad08dbf0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240580.4644787} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"643fe70d7fffdbf12bd441e00e22b892","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"643fe70d7fffdbf12bd441e00e22b892"} device-1 | {"level":"info","message":"POST /devices? 201 59ms","method":"POST","requestID":"643fe70d7fffdbf12bd441e00e22b892","responseTime":59,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.065","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"643fe70d7fffdbf12bd441e00e22b892"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4MH0.8O8zSg5pUhezsX5sKH-HbEHJKiMPBT60icGIT8AZj-s","level":"info","message":"auth send jwt","requestID":"7273369e36eb4b3137954e58fa0a1241"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7273369e36eb4b3137954e58fa0a1241","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"7273369e36eb4b3137954e58fa0a1241"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1181,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:20Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1181,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.750886,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7273369e36eb4b3137954e58fa0a1241","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240580,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4MH0.8O8zSg5pUhezsX5sKH-HbEHJKiMPBT60icGIT8AZj-s"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7273369e36eb4b3137954e58fa0a1241","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ce3f2275-5432-4dac-bf20-bbf9cfacdd4d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240580.4855847} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"7273369e36eb4b3137954e58fa0a1241","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"05d19509-c5cf-43a1-b576-943eccca2fde","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240580.4900956} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"7273369e36eb4b3137954e58fa0a1241","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"476c1cfb-7fc5-4d59-87d1-fd580d16b0ea","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240580.502202} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ed150f34-65ec-4af7-afe5-b30282ef7b04","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240580.5023558} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"7273369e36eb4b3137954e58fa0a1241","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:20.502173298Z"}]},"request_id":"68e4a163-53f9-4911-9cd3-c5b17e9b45a8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240580.5061316} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"7273369e36eb4b3137954e58fa0a1241","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"7273369e36eb4b3137954e58fa0a1241"} gateway-1 | {"time_local":"18/Jun/2025:09:56:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7273369e36eb4b3137954e58fa0a1241"} device-1 | {"level":"info","message":"POST /devices? 201 36ms","method":"POST","requestID":"7273369e36eb4b3137954e58fa0a1241","responseTime":36,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4MX0.0pwzz1RVgZLQVn6r1Xj3WkE6rexrX1U7boBH_O4fxgQ","level":"info","message":"auth send jwt","requestID":"6f16c7c42b4ddef5cb8dd2e9e970ea03"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6f16c7c42b4ddef5cb8dd2e9e970ea03","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"6f16c7c42b4ddef5cb8dd2e9e970ea03"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1182,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:21Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1182,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.675259,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6f16c7c42b4ddef5cb8dd2e9e970ea03","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240581,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4MX0.0pwzz1RVgZLQVn6r1Xj3WkE6rexrX1U7boBH_O4fxgQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"6f16c7c42b4ddef5cb8dd2e9e970ea03","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:20.460574998Z"}]},"request_id":"d1f3e9a0-e2a1-4a06-a952-00fa6efbda5f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240581.445086} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6f16c7c42b4ddef5cb8dd2e9e970ea03","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"905a0526-6556-4dd5-ab16-2d53c8c3a27d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240581.4488451} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"6f16c7c42b4ddef5cb8dd2e9e970ea03","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:20.460574998Z"}]},"request_id":"a5cc12c6-34b2-4125-9679-575256020efc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240581.4584427} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6f16c7c42b4ddef5cb8dd2e9e970ea03","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"6f16c7c42b4ddef5cb8dd2e9e970ea03"} device-1 | {"level":"info","message":"PATCH /devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec 200 47ms","method":"PATCH","requestID":"6f16c7c42b4ddef5cb8dd2e9e970ea03","responseTime":47,"status":200,"url":"/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec"} gateway-1 | {"time_local":"18/Jun/2025:09:56:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.052","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"6f16c7c42b4ddef5cb8dd2e9e970ea03"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4MX0.0pwzz1RVgZLQVn6r1Xj3WkE6rexrX1U7boBH_O4fxgQ","level":"info","message":"auth send jwt","requestID":"2872b4bbf808c597259f63f5b5d6d01a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2872b4bbf808c597259f63f5b5d6d01a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"2872b4bbf808c597259f63f5b5d6d01a"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1183,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:21Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1183,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.722235,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2872b4bbf808c597259f63f5b5d6d01a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240581,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4MX0.0pwzz1RVgZLQVn6r1Xj3WkE6rexrX1U7boBH_O4fxgQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"2872b4bbf808c597259f63f5b5d6d01a","responseTime":27,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"2872b4bbf808c597259f63f5b5d6d01a"} gateway-1 | {"time_local":"18/Jun/2025:09:56:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.041","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"2872b4bbf808c597259f63f5b5d6d01a"} device-1 | {"level":"info","message":"POST /devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec/websocket 200 37ms","method":"POST","requestID":"2872b4bbf808c597259f63f5b5d6d01a","responseTime":37,"status":200,"url":"/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e24d0af0c1546e0163a9ee04d33602da","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e24d0af0c1546e0163a9ee04d33602da","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/8e86fe80-a0a4-4616-a888-df45a018b868/websocket 200 1ms","method":"OPTIONS","requestID":"e24d0af0c1546e0163a9ee04d33602da","responseTime":1,"status":200,"url":"/devices/8e86fe80-a0a4-4616-a888-df45a018b868/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:56:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/8e86fe80-a0a4-4616-a888-df45a018b868/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e24d0af0c1546e0163a9ee04d33602da"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Mn0.eCnu00sOnGE-iCkMngZH2Qbarkqkc5aAruT7YghaOBA","level":"info","message":"auth send jwt","requestID":"8b5d3a17694912a55ab37c12457d82be"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8b5d3a17694912a55ab37c12457d82be","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"8b5d3a17694912a55ab37c12457d82be"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1184,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:22Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1184,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.169977,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:22Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8b5d3a17694912a55ab37c12457d82be","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240582,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Mn0.eCnu00sOnGE-iCkMngZH2Qbarkqkc5aAruT7YghaOBA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8b5d3a17694912a55ab37c12457d82be","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"8b5d3a17694912a55ab37c12457d82be"} gateway-1 | {"time_local":"18/Jun/2025:09:56:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8e86fe80-a0a4-4616-a888-df45a018b868/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.021","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8b5d3a17694912a55ab37c12457d82be"} device-1 | {"level":"info","message":"POST /devices/8e86fe80-a0a4-4616-a888-df45a018b868/websocket 200 15ms","method":"POST","requestID":"8b5d3a17694912a55ab37c12457d82be","responseTime":15,"status":200,"url":"/devices/8e86fe80-a0a4-4616-a888-df45a018b868/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ec6a99c5578686db92100e9a1c39da90","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"ec6a99c5578686db92100e9a1c39da90","responseTime":0,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/8e86fe80-a0a4-4616-a888-df45a018b868? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ec6a99c5578686db92100e9a1c39da90"} device-1 | {"level":"info","message":"OPTIONS /devices/8e86fe80-a0a4-4616-a888-df45a018b868? 200 0ms","method":"OPTIONS","requestID":"ec6a99c5578686db92100e9a1c39da90","responseTime":0,"status":200,"url":"/devices/8e86fe80-a0a4-4616-a888-df45a018b868?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Mn0.eCnu00sOnGE-iCkMngZH2Qbarkqkc5aAruT7YghaOBA","level":"info","message":"auth send jwt","requestID":"d27bd5545b29a1ac4b91405ce3022681"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d27bd5545b29a1ac4b91405ce3022681","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"d27bd5545b29a1ac4b91405ce3022681"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1185,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:22Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1185,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.642781,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:22Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d27bd5545b29a1ac4b91405ce3022681","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240582,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Mn0.eCnu00sOnGE-iCkMngZH2Qbarkqkc5aAruT7YghaOBA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d27bd5545b29a1ac4b91405ce3022681","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:20.502173298Z"}]},"request_id":"5f0d4ccc-26ca-40f3-b1ea-8f4de8975ff4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240582.9167342} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d27bd5545b29a1ac4b91405ce3022681","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"637bedc2-6140-4d8b-9919-2920535aa4ad","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240582.9218357} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"d27bd5545b29a1ac4b91405ce3022681","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:20.502173298Z"}]},"request_id":"a39bf9c8-a7c8-4bf2-810e-73a85bd073a1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240582.9308867} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d27bd5545b29a1ac4b91405ce3022681","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"d27bd5545b29a1ac4b91405ce3022681"} gateway-1 | {"time_local":"18/Jun/2025:09:56:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/8e86fe80-a0a4-4616-a888-df45a018b868? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.027","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d27bd5545b29a1ac4b91405ce3022681"} device-1 | {"level":"info","message":"PATCH /devices/8e86fe80-a0a4-4616-a888-df45a018b868? 200 24ms","method":"PATCH","requestID":"d27bd5545b29a1ac4b91405ce3022681","responseTime":24,"status":200,"url":"/devices/8e86fe80-a0a4-4616-a888-df45a018b868?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Mn0.eCnu00sOnGE-iCkMngZH2Qbarkqkc5aAruT7YghaOBA","level":"info","message":"auth send jwt","requestID":"7a0b0938132d4684e6c8aa3b391b9f94"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7a0b0938132d4684e6c8aa3b391b9f94","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7a0b0938132d4684e6c8aa3b391b9f94"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1186,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:22Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1186,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.536571,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7a0b0938132d4684e6c8aa3b391b9f94","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240582,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Mn0.eCnu00sOnGE-iCkMngZH2Qbarkqkc5aAruT7YghaOBA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"7a0b0938132d4684e6c8aa3b391b9f94","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:20.460574998Z"}]},"request_id":"1c447eaa-af59-4f3e-9d15-923b5be24600","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240582.94931} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"7a0b0938132d4684e6c8aa3b391b9f94","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7a0b0938132d4684e6c8aa3b391b9f94"} gateway-1 | {"time_local":"18/Jun/2025:09:56:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7a0b0938132d4684e6c8aa3b391b9f94"} device-1 | {"level":"info","message":"GET /devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec? 200 12ms","method":"GET","requestID":"7a0b0938132d4684e6c8aa3b391b9f94","responseTime":12,"status":200,"url":"/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Mn0.eCnu00sOnGE-iCkMngZH2Qbarkqkc5aAruT7YghaOBA","level":"info","message":"auth send jwt","requestID":"41c7bdfb6836d3b1e9d237b8d63d1cf5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"41c7bdfb6836d3b1e9d237b8d63d1cf5","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"41c7bdfb6836d3b1e9d237b8d63d1cf5"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1187,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:22Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1187,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.775218,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"41c7bdfb6836d3b1e9d237b8d63d1cf5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240582,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Mn0.eCnu00sOnGE-iCkMngZH2Qbarkqkc5aAruT7YghaOBA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"41c7bdfb6836d3b1e9d237b8d63d1cf5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:20.502173298Z"}]},"request_id":"abb86e2f-8f80-4795-858a-e2c7f22dcd66","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240582.9877627} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"41c7bdfb6836d3b1e9d237b8d63d1cf5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"41c7bdfb6836d3b1e9d237b8d63d1cf5"} gateway-1 | {"time_local":"18/Jun/2025:09:56:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8e86fe80-a0a4-4616-a888-df45a018b868? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"41c7bdfb6836d3b1e9d237b8d63d1cf5"} device-1 | {"level":"info","message":"GET /devices/8e86fe80-a0a4-4616-a888-df45a018b868? 200 10ms","method":"GET","requestID":"41c7bdfb6836d3b1e9d237b8d63d1cf5","responseTime":10,"status":200,"url":"/devices/8e86fe80-a0a4-4616-a888-df45a018b868?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Mn0.eCnu00sOnGE-iCkMngZH2Qbarkqkc5aAruT7YghaOBA","level":"info","message":"auth send jwt","requestID":"f3f057a4864b927f78b70087beb7da40"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f3f057a4864b927f78b70087beb7da40","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"f3f057a4864b927f78b70087beb7da40"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1188,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:22Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1188,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.796154,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f3f057a4864b927f78b70087beb7da40","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240582,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Mn0.eCnu00sOnGE-iCkMngZH2Qbarkqkc5aAruT7YghaOBA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f3f057a4864b927f78b70087beb7da40","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8"},"level":"info","message":"Attempting to run experiment","requestID":"f3f057a4864b927f78b70087beb7da40"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8"},"level":"info","message":"Attempting to book experiment","requestID":"f3f057a4864b927f78b70087beb7da40"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8"},"level":"info","message":"Successfully booked experiment","requestID":"f3f057a4864b927f78b70087beb7da40"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7dbea970-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7dbed080-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1189,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1189,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.62099,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7dbea970-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240582,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Mn0.eCnu00sOnGE-iCkMngZH2Qbarkqkc5aAruT7YghaOBA"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"7dbea970-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41288","level":"info","msg":"Received request.","req_id":1190,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"client_addr":"127.0.0.1:41288","level":"info","msg":"Sent response.","req_id":1190,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.649873,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7dbed080-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240582,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Mn0.eCnu00sOnGE-iCkMngZH2Qbarkqkc5aAruT7YghaOBA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"7dbed080-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:20.460574998Z"}]},"request_id":"bcb01cc5-8704-47db-b1bb-5380c9777d53","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240583.0780637} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"7dbea970-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:20.502173298Z"}]},"request_id":"e5bb4a86-0be5-44a4-bbc2-18dd6bbc3e4f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240583.0809882} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7dbea970-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"7dbed080-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"GET /devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec? 200 34ms","method":"GET","requestID":"7dbea970-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7dbed080-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/8e86fe80-a0a4-4616-a888-df45a018b868? 200 36ms","method":"GET","requestID":"7dbed080-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/8e86fe80-a0a4-4616-a888-df45a018b868?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8"},"level":"info","message":"Setting up experiment","requestID":"f3f057a4864b927f78b70087beb7da40"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"f3f057a4864b927f78b70087beb7da40"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"f3f057a4864b927f78b70087beb7da40"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8"},"level":"info","message":"Successfully locked booking for experiment","requestID":"f3f057a4864b927f78b70087beb7da40"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8"},"level":"info","message":"Successfully set up experiment","requestID":"f3f057a4864b927f78b70087beb7da40"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7dcba1c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7dcbc8d0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8"},"level":"info","message":"Successfully running experiment","requestID":"f3f057a4864b927f78b70087beb7da40"} authorization-1 | {"client_addr":"127.0.0.1:41288","level":"info","msg":"Received request.","req_id":1191,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"client_addr":"127.0.0.1:41288","level":"info","msg":"Sent response.","req_id":1191,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.61679,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1192,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7dcba1c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240582,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Mn0.eCnu00sOnGE-iCkMngZH2Qbarkqkc5aAruT7YghaOBA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"7dcba1c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1192,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.539377,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7dcbc8d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240582,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Mn0.eCnu00sOnGE-iCkMngZH2Qbarkqkc5aAruT7YghaOBA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"7dcbc8d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:20.460574998Z"}]},"request_id":"f0a93ca8-bd57-48db-a0a8-3dfd11768b1f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240583.1415138} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:20.502173298Z"}]},"request_id":"73ff25c3-6fe5-4406-abfb-4342b0897678","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240583.1417117} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"7dcba1c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"7dcbc8d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7dcba1c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec? 200 16ms","method":"GET","requestID":"7dcba1c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":16,"status":200,"url":"/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7dcbc8d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/8e86fe80-a0a4-4616-a888-df45a018b868? 200 40ms","method":"GET","requestID":"7dcbc8d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":40,"status":200,"url":"/devices/8e86fe80-a0a4-4616-a888-df45a018b868?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F06f06772-5cab-4b64-9747-1b342e6c72a8#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F06f06772-5cab-4b64-9747-1b342e6c72a8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"31171f4c-29a3-4e8c-b6b0-e30866f26c51","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240583.1731477} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a0483a4e-5d5b-41f2-8e52-328acde92802","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240583.173351} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"f3f057a4864b927f78b70087beb7da40","responseTime":38,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7dd23170-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1193,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ef752ba5-17b5-4acb-b0a0-36f2e919a00f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240583.1795843} experiment-1 | {"data":{"experiment":"http://localhost/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"f3f057a4864b927f78b70087beb7da40"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1193,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.47724,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:23Z"} gateway-1 | {"time_local":"18/Jun/2025:09:56:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1216","request_time":"0.188","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f3f057a4864b927f78b70087beb7da40"} experiment-1 | {"level":"info","message":"POST /experiments? 201 185ms","method":"POST","requestID":"f3f057a4864b927f78b70087beb7da40","responseTime":185,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7dd23170-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"7dd23170-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7dd23170-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec/signaling 200 9ms","method":"POST","requestID":"7dd23170-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4M30.ozGUZVVMYViBopEgW7hZy4CO--H1T7-gy39aiHH6lZY","level":"info","message":"auth send jwt","requestID":"ebc0c788a4719f158abd2fa5fbb87932"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ebc0c788a4719f158abd2fa5fbb87932","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ebc0c788a4719f158abd2fa5fbb87932"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7dd3df20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1194,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1194,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.593945,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"client_addr":"127.0.0.1:41288","level":"info","msg":"Received request.","req_id":1195,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ebc0c788a4719f158abd2fa5fbb87932","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240583,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4M30.ozGUZVVMYViBopEgW7hZy4CO--H1T7-gy39aiHH6lZY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ebc0c788a4719f158abd2fa5fbb87932","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9ca9ba96-223d-4bc9-90c2-4bbb31c8d411","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240583.1902711} authorization-1 | {"client_addr":"127.0.0.1:41288","level":"info","msg":"Sent response.","req_id":1195,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.462819,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:23Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7dd3df20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/8e86fe80-a0a4-4616-a888-df45a018b868/signaling 200 9ms","method":"POST","requestID":"7dd3df20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/8e86fe80-a0a4-4616-a888-df45a018b868/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ebc0c788a4719f158abd2fa5fbb87932"} device-1 | {"level":"info","message":"GET /devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec? 200 11ms","method":"GET","requestID":"ebc0c788a4719f158abd2fa5fbb87932","responseTime":11,"status":200,"url":"/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7dd3df20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"7dd3df20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:20.460574998Z"}]},"request_id":"316c3b71-f263-49c9-9425-1b8019b869de","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240583.1922064} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ebc0c788a4719f158abd2fa5fbb87932","responseTime":3,"status":200,"url":"/relations/query"} gateway-1 | {"time_local":"18/Jun/2025:09:56:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.035","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ebc0c788a4719f158abd2fa5fbb87932"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4M30.ozGUZVVMYViBopEgW7hZy4CO--H1T7-gy39aiHH6lZY","level":"info","message":"auth send jwt","requestID":"e4c672ce8894476bfeab9f1e4e4eeb9d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e4c672ce8894476bfeab9f1e4e4eeb9d","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"e4c672ce8894476bfeab9f1e4e4eeb9d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"f3f057a4864b927f78b70087beb7da40"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7dd95d60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7dd98470-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41288","level":"info","msg":"Received request.","req_id":1196,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"client_addr":"127.0.0.1:41288","level":"info","msg":"Sent response.","req_id":1196,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.950743,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Received request.","req_id":1197,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e4c672ce8894476bfeab9f1e4e4eeb9d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240583,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4M30.ozGUZVVMYViBopEgW7hZy4CO--H1T7-gy39aiHH6lZY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"e4c672ce8894476bfeab9f1e4e4eeb9d","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:58920","level":"info","msg":"Sent response.","req_id":1197,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.593003,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7dd95d60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240582,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Mn0.eCnu00sOnGE-iCkMngZH2Qbarkqkc5aAruT7YghaOBA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"7dd95d60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:20.460574998Z"}]},"request_id":"ed091c06-c5a2-460f-ae87-ba57f8abadd4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240583.233232} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:20.502173298Z"}]},"request_id":"3d9dbc2a-42e5-4c6b-96b5-383a3437c869","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240583.238013} authorization-1 | {"level":"info","message":"POST /relations/query 200 34ms","method":"POST","requestID":"7dd95d60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1198,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1198,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.674472,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"level":"info","message":"POST /relations/query 200 32ms","method":"POST","requestID":"e4c672ce8894476bfeab9f1e4e4eeb9d","responseTime":32,"status":200,"url":"/relations/query"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7dd98470-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240582,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Mn0.eCnu00sOnGE-iCkMngZH2Qbarkqkc5aAruT7YghaOBA"} authorization-1 | {"level":"info","message":"POST /authorize 200 43ms","method":"POST","requestID":"7dd98470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":43,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7dd95d60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec? 200 48ms","method":"GET","requestID":"7dd95d60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":48,"status":200,"url":"/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"e4c672ce8894476bfeab9f1e4e4eeb9d"} gateway-1 | {"time_local":"18/Jun/2025:09:56:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8e86fe80-a0a4-4616-a888-df45a018b868? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e4c672ce8894476bfeab9f1e4e4eeb9d"} device-1 | {"level":"info","message":"GET /devices/8e86fe80-a0a4-4616-a888-df45a018b868? 200 51ms","method":"GET","requestID":"e4c672ce8894476bfeab9f1e4e4eeb9d","responseTime":51,"status":200,"url":"/devices/8e86fe80-a0a4-4616-a888-df45a018b868?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:20.502173298Z"}]},"request_id":"2b3b12a4-f389-4730-b3f2-e8086b7b16eb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240583.2740703} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"7dd98470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7dd98470-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/8e86fe80-a0a4-4616-a888-df45a018b868? 200 54ms","method":"GET","requestID":"7dd98470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":54,"status":200,"url":"/devices/8e86fe80-a0a4-4616-a888-df45a018b868?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8"},"level":"info","message":"Building connection plan","requestID":"f3f057a4864b927f78b70087beb7da40"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"da142fcd-1a3b-4476-9469-0166059ffcd9"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"10cd04f7-c597-4a66-943c-a97992065ec1"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"75ed830d-9369-4488-898c-2d0627b753cb"}]},"level":"info","message":"Built pairwise service configurations","requestID":"f3f057a4864b927f78b70087beb7da40"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"f3f057a4864b927f78b70087beb7da40"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"7de20ff0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1199,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1199,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.883139,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7de20ff0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240582,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Mn0.eCnu00sOnGE-iCkMngZH2Qbarkqkc5aAruT7YghaOBA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7de20ff0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"603f7e2e-2efe-4d06-bdb2-be5744eff84a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240583.290271} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"73cb75a9-0d65-44af-be35-1c708f4f2a77","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240583.2905056} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"7de20ff0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"7de20ff0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"7de20ff0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/d735d8e5-5cc1-467c-9dc9-46816f5fea1f'","requestID":"7de20ff0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/d735d8e5-5cc1-467c-9dc9-46816f5fea1f'","requestID":"7de20ff0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"7de20ff0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 43ms","method":"POST","requestID":"7de20ff0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":43,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"7de20ff0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"f3f057a4864b927f78b70087beb7da40"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7df019b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1200,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"30d0cbd1-ff5e-4827-bfbc-243149b14747","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240583.3751254} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1200,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.490024,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7df019b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"7df019b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7df019b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec/signaling 200 8ms","method":"POST","requestID":"7df019b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7df17940-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1201,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:23Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e93c8673-bad8-4104-8476-1696da522379","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240583.408916} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1201,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.950861,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:23Z"} device-1 | {"device":"8e86fe80-a0a4-4616-a888-df45a018b868","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"8e86fe80-a0a4-4616-a888-df45a018b868","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7df17940-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"7df17940-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7df17940-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/8e86fe80-a0a4-4616-a888-df45a018b868/signaling 200 34ms","method":"POST","requestID":"7df17940-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/8e86fe80-a0a4-4616-a888-df45a018b868/signaling"} device-1 | {"device":"999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"d735d8e5-5cc1-467c-9dc9-46816f5fea1f","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"content":{"sdp":"v=0\r\no=- 6938277587465448367 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=msid-semantic: WMS\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:crWJ\r\na=ice-pwd:01HIN2JBzz+w4vBeCZI1zA+i\r\na=ice-options:trickle\r\na=fingerprint:sha-256 25:07:29:8D:EC:D6:6E:3F:02:F0:F8:2D:E6:1F:EB:10:6D:F4:18:B1:7B:3F:B4:B9:12:4D:36:25:2E:00:7D:AF\r\na=setup:active\r\na=mid:0\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n","type":"answer"},"device":"8e86fe80-a0a4-4616-a888-df45a018b868","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:2037413168 1 udp 2113937151 db1181d1-20c8-4144-8827-adda3890002d.local 37069 typ host generation 0 ufrag crWJ network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"8e86fe80-a0a4-4616-a888-df45a018b868","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"8e86fe80-a0a4-4616-a888-df45a018b868","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"content":{"candidate":"candidate:1529805757 1 udp 1677729535 141.24.211.56 37069 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag crWJ network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"8e86fe80-a0a4-4616-a888-df45a018b868","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/d735d8e5-5cc1-467c-9dc9-46816f5fea1f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d735d8e5-5cc1-467c-9dc9-46816f5fea1f","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2724d530b2b72f0843bbce32465c83d0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2724d530b2b72f0843bbce32465c83d0","responseTime":1,"status":200,"url":"/auth"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868'"} device-1 | {"device":"8e86fe80-a0a4-4616-a888-df45a018b868","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/d735d8e5-5cc1-467c-9dc9-46816f5fea1f"}}},"level":"info","message":"received a callback","requestID":"2724d530b2b72f0843bbce32465c83d0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"2724d530b2b72f0843bbce32465c83d0","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"2724d530b2b72f0843bbce32465c83d0"} device-1 | {"data":{"peerconnection":"d735d8e5-5cc1-467c-9dc9-46816f5fea1f","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"8e86fe80-a0a4-4616-a888-df45a018b868","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"data":{"peerconnection":"d735d8e5-5cc1-467c-9dc9-46816f5fea1f","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"8e86fe80-a0a4-4616-a888-df45a018b868","deviceName":"JS Device 2","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/d735d8e5-5cc1-467c-9dc9-46816f5fea1f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d735d8e5-5cc1-467c-9dc9-46816f5fea1f","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ee62ebbf8cd84ec5d29a3412ac75e22f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ee62ebbf8cd84ec5d29a3412ac75e22f","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/d735d8e5-5cc1-467c-9dc9-46816f5fea1f"}}},"level":"info","message":"received a callback","requestID":"ee62ebbf8cd84ec5d29a3412ac75e22f"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"7f298410-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1202,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:25Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd735d8e5-5cc1-467c-9dc9-46816f5fea1f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9b5b69a5-4e0e-4ebf-b87a-26ae95696902","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240585.4291453} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1202,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.177141,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d735d8e5-5cc1-467c-9dc9-46816f5fea1f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7f298410-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/d735d8e5-5cc1-467c-9dc9-46816f5fea1f","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"7f298410-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"7f298410-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/d735d8e5-5cc1-467c-9dc9-46816f5fea1f 200 7ms","method":"GET","requestID":"7f298410-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/peerconnections/d735d8e5-5cc1-467c-9dc9-46816f5fea1f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 26ms","method":"POST","requestID":"ee62ebbf8cd84ec5d29a3412ac75e22f","responseTime":26,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.029","http_referrer":"","http_user_agent":"node-fetch","requestID":"ee62ebbf8cd84ec5d29a3412ac75e22f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7f2d0680-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1203,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:25Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"67f85b00-a1cf-4d0d-80c8-a87761e34d5e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240585.4767356} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1203,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.375017,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7f2d0680-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"7f2d0680-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7f2d0680-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/8e86fe80-a0a4-4616-a888-df45a018b868/signaling 200 32ms","method":"POST","requestID":"7f2d0680-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/devices/8e86fe80-a0a4-4616-a888-df45a018b868/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7f3236a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1204,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:25Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5c243daf-829b-4aee-ab7a-13f864c0115f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240585.4867203} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1204,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.538861,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7f3236a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"7f3236a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7f3236a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec/signaling 200 8ms","method":"POST","requestID":"7f3236a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4NX0.OTpdFMv3mpCXbGiutZxsVcLLm6FZh3l-UHk_HuYBtvE","level":"info","message":"auth send jwt","requestID":"be686db6ef258d993d586e97f73d906c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"be686db6ef258d993d586e97f73d906c","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/06f06772-5cab-4b64-9747-1b342e6c72a8","requestID":"be686db6ef258d993d586e97f73d906c"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1205,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:25Z"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1205,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.675109,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"be686db6ef258d993d586e97f73d906c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240585,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4NX0.OTpdFMv3mpCXbGiutZxsVcLLm6FZh3l-UHk_HuYBtvE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"be686db6ef258d993d586e97f73d906c","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/06f06772-5cab-4b64-9747-1b342e6c72a8","requestID":"be686db6ef258d993d586e97f73d906c"} experiment-1 | {"level":"info","message":"GET /experiments/06f06772-5cab-4b64-9747-1b342e6c72a8 200 10ms","method":"GET","requestID":"be686db6ef258d993d586e97f73d906c","responseTime":10,"status":200,"url":"/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8"} gateway-1 | {"time_local":"18/Jun/2025:09:56:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/06f06772-5cab-4b64-9747-1b342e6c72a8 HTTP/1.1","status": "200","body_bytes_sent":"1289","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"be686db6ef258d993d586e97f73d906c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4NX0.OTpdFMv3mpCXbGiutZxsVcLLm6FZh3l-UHk_HuYBtvE","level":"info","message":"auth send jwt","requestID":"cb434476940a1e3e86bc780273532c79"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cb434476940a1e3e86bc780273532c79","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/06f06772-5cab-4b64-9747-1b342e6c72a8","requestID":"cb434476940a1e3e86bc780273532c79"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1206,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:25Z"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1206,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.666009,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:25Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"cb434476940a1e3e86bc780273532c79","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240585,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4NX0.OTpdFMv3mpCXbGiutZxsVcLLm6FZh3l-UHk_HuYBtvE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"cb434476940a1e3e86bc780273532c79","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8"},"level":"info","message":"Attempting to finish experiment","requestID":"cb434476940a1e3e86bc780273532c79"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"7f3fcb30-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1207,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:25Z"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1207,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.672838,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:25Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d735d8e5-5cc1-467c-9dc9-46816f5fea1f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7f3fcb30-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/d735d8e5-5cc1-467c-9dc9-46816f5fea1f","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240585,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4NX0.OTpdFMv3mpCXbGiutZxsVcLLm6FZh3l-UHk_HuYBtvE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7f3fcb30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/d735d8e5-5cc1-467c-9dc9-46816f5fea1f","device":"8e86fe80-a0a4-4616-a888-df45a018b868","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/d735d8e5-5cc1-467c-9dc9-46816f5fea1f' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/d735d8e5-5cc1-467c-9dc9-46816f5fea1f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d735d8e5-5cc1-467c-9dc9-46816f5fea1f","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd735d8e5-5cc1-467c-9dc9-46816f5fea1f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd735d8e5-5cc1-467c-9dc9-46816f5fea1f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"878abe14-78a9-40fe-95d5-e28303a65464","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240585.5854905} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d6435825-1762-4d22-a888-0595d77ed252","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240585.5857534} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"cbbcf1d376c7a3811149fbde813dc81c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"cbbcf1d376c7a3811149fbde813dc81c","responseTime":0,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"7f3fcb30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"99f38df508143a851d3ab35dec519c35","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"99f38df508143a851d3ab35dec519c35","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/d735d8e5-5cc1-467c-9dc9-46816f5fea1f"}}},"level":"info","message":"received a callback","requestID":"cbbcf1d376c7a3811149fbde813dc81c"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/d735d8e5-5cc1-467c-9dc9-46816f5fea1f"}}},"level":"info","message":"received a callback","requestID":"99f38df508143a851d3ab35dec519c35"} device-1 | {"data":{"peerconnection":"d735d8e5-5cc1-467c-9dc9-46816f5fea1f","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"7f3fcb30-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/d735d8e5-5cc1-467c-9dc9-46816f5fea1f 204 55ms","method":"DELETE","requestID":"7f3fcb30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":55,"status":204,"url":"/peerconnections/d735d8e5-5cc1-467c-9dc9-46816f5fea1f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8"},"level":"info","message":"Successfully finished experiment","requestID":"cb434476940a1e3e86bc780273532c79"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7f4a2b70-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1208,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:25Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8e86fe80-a0a4-4616-a888-df45a018b868","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"69a583b0-6dea-4f71-979d-4b79bfc1d9f2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240585.6443508} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1208,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":23.658015,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7f4a2b70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"7f4a2b70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":26,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7f4a2b70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/8e86fe80-a0a4-4616-a888-df45a018b868/signaling 200 29ms","method":"POST","requestID":"7f4a2b70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/devices/8e86fe80-a0a4-4616-a888-df45a018b868/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"7f4f0d70-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F06f06772-5cab-4b64-9747-1b342e6c72a8': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F06f06772-5cab-4b64-9747-1b342e6c72a8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"b23c4b0b-0d24-4463-a0bc-2ce073a86350","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240585.6719284} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f4014339-36c9-467d-92fe-367aa5d7081b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240585.6720586} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"cb434476940a1e3e86bc780273532c79","responseTime":36,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1209,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:25Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"41c81151-06cd-4d67-bc2c-4bc4964c0821","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240585.6760898} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1209,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.471078,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7f4f0d70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"7f4f0d70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"7f4f0d70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec/signaling 200 9ms","method":"POST","requestID":"7f4f0d70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/06f06772-5cab-4b64-9747-1b342e6c72a8","requestID":"cb434476940a1e3e86bc780273532c79"} gateway-1 | {"time_local":"18/Jun/2025:09:56:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/06f06772-5cab-4b64-9747-1b342e6c72a8 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.231","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cb434476940a1e3e86bc780273532c79"} experiment-1 | {"level":"info","message":"DELETE /experiments/06f06772-5cab-4b64-9747-1b342e6c72a8 204 228ms","method":"DELETE","requestID":"cb434476940a1e3e86bc780273532c79","responseTime":228,"status":204,"url":"/experiments/06f06772-5cab-4b64-9747-1b342e6c72a8"} gateway-1 | {"time_local":"18/Jun/2025:09:56:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3160","request_time":"4.263","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"f755b7377fe5f0b9a40be1288f75912c"} gateway-1 | {"time_local":"18/Jun/2025:09:56:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.184","http_referrer":"","http_user_agent":"node-fetch","requestID":"cbbcf1d376c7a3811149fbde813dc81c"} gateway-1 | {"time_local":"18/Jun/2025:09:56:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.184","http_referrer":"","http_user_agent":"node-fetch","requestID":"99f38df508143a851d3ab35dec519c35"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 182ms","method":"POST","requestID":"cbbcf1d376c7a3811149fbde813dc81c","responseTime":182,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 182ms","method":"POST","requestID":"99f38df508143a851d3ab35dec519c35","responseTime":182,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4NX0.OTpdFMv3mpCXbGiutZxsVcLLm6FZh3l-UHk_HuYBtvE","level":"info","message":"auth send jwt","requestID":"451efd1f5a55192d2f99bfbad9a7d0a3"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"451efd1f5a55192d2f99bfbad9a7d0a3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"451efd1f5a55192d2f99bfbad9a7d0a3"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1210,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:25Z"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1210,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.924008,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:25Z"} gateway-1 | {"time_local":"18/Jun/2025:09:56:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3405","request_time":"2.905","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2cce1dcb575546855900998528770936"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"451efd1f5a55192d2f99bfbad9a7d0a3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240585,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4NX0.OTpdFMv3mpCXbGiutZxsVcLLm6FZh3l-UHk_HuYBtvE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"451efd1f5a55192d2f99bfbad9a7d0a3","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/999c4fc9-9feb-4f7b-82aa-c8e8ddc7b4ec' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1102de9a-fc14-49e6-ac61-b109d83fc882","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240585.7923539} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"451efd1f5a55192d2f99bfbad9a7d0a3","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"07f128f1-109c-4e83-a2cb-75c194f8229d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240585.7971117} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/8e86fe80-a0a4-4616-a888-df45a018b868' closed"} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"451efd1f5a55192d2f99bfbad9a7d0a3","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"738703c8-29cd-4474-9861-3574a705db72","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240585.8046987} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"01442545-b19f-4ce2-b448-d2ec5feb3ca1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240585.804918} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"451efd1f5a55192d2f99bfbad9a7d0a3","responseTime":10,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:25.804653640Z"}]},"request_id":"0b33c0e5-dade-4f80-ad31-c1a129166239","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240585.8091269} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"451efd1f5a55192d2f99bfbad9a7d0a3","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"451efd1f5a55192d2f99bfbad9a7d0a3"} gateway-1 | {"time_local":"18/Jun/2025:09:56:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"451efd1f5a55192d2f99bfbad9a7d0a3"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"451efd1f5a55192d2f99bfbad9a7d0a3","responseTime":38,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4NX0.OTpdFMv3mpCXbGiutZxsVcLLm6FZh3l-UHk_HuYBtvE","level":"info","message":"auth send jwt","requestID":"347d29245d213f87cc160ca5a892537a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"347d29245d213f87cc160ca5a892537a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"347d29245d213f87cc160ca5a892537a"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1211,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:25Z"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1211,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.829104,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:25Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"347d29245d213f87cc160ca5a892537a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240585,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4NX0.OTpdFMv3mpCXbGiutZxsVcLLm6FZh3l-UHk_HuYBtvE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"347d29245d213f87cc160ca5a892537a","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1e8d712a-6606-49b4-9c11-e6176b55e505","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240585.8326135} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"347d29245d213f87cc160ca5a892537a","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"57e73853-3e5b-459b-beb1-c45a750d5488","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240585.8369346} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"347d29245d213f87cc160ca5a892537a","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"d0331b73-b869-42b4-a761-944f4534a21a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240585.8473344} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2c4c6184-c43d-41e9-9e61-389a8dd91896","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240585.8475237} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"347d29245d213f87cc160ca5a892537a","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:25.847286918Z"}]},"request_id":"065eba0a-2da3-4808-b655-63898a09af22","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240585.8514366} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"347d29245d213f87cc160ca5a892537a","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"347d29245d213f87cc160ca5a892537a"} gateway-1 | {"time_local":"18/Jun/2025:09:56:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"347d29245d213f87cc160ca5a892537a"} device-1 | {"level":"info","message":"POST /devices? 201 37ms","method":"POST","requestID":"347d29245d213f87cc160ca5a892537a","responseTime":37,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Nn0.uk0BYpBnIGdM8M53k21l4OOnKnvr6_NIs3KanEybBsE","level":"info","message":"auth send jwt","requestID":"0c09f690ac50f356224b47ecbe9c3658"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0c09f690ac50f356224b47ecbe9c3658","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"0c09f690ac50f356224b47ecbe9c3658"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1212,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:26Z"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1212,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.668183,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0c09f690ac50f356224b47ecbe9c3658","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240586,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Nn0.uk0BYpBnIGdM8M53k21l4OOnKnvr6_NIs3KanEybBsE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0c09f690ac50f356224b47ecbe9c3658","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:25.804653640Z"}]},"request_id":"cb883350-2092-444a-a7b1-04a63953d1c2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240586.7826495} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"0c09f690ac50f356224b47ecbe9c3658","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"33cfcb8d-34c5-4e37-9d54-0e4edebba76b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240586.786406} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"0c09f690ac50f356224b47ecbe9c3658","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:25.804653640Z"}]},"request_id":"a11fbe5e-2890-4705-b7af-1a20eb9c2583","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240586.817355} authorization-1 | {"level":"info","message":"POST /relations/query 200 23ms","method":"POST","requestID":"0c09f690ac50f356224b47ecbe9c3658","responseTime":23,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"0c09f690ac50f356224b47ecbe9c3658"} device-1 | {"level":"info","message":"PATCH /devices/ac29ecbf-f954-4348-a172-e285539d097c 200 45ms","method":"PATCH","requestID":"0c09f690ac50f356224b47ecbe9c3658","responseTime":45,"status":200,"url":"/devices/ac29ecbf-f954-4348-a172-e285539d097c"} gateway-1 | {"time_local":"18/Jun/2025:09:56:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/ac29ecbf-f954-4348-a172-e285539d097c HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.049","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"0c09f690ac50f356224b47ecbe9c3658"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Nn0.uk0BYpBnIGdM8M53k21l4OOnKnvr6_NIs3KanEybBsE","level":"info","message":"auth send jwt","requestID":"f9aa9785b7bea5b8b70b15e31370319b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f9aa9785b7bea5b8b70b15e31370319b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"f9aa9785b7bea5b8b70b15e31370319b"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1213,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:26Z"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1213,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.624645,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f9aa9785b7bea5b8b70b15e31370319b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240586,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4Nn0.uk0BYpBnIGdM8M53k21l4OOnKnvr6_NIs3KanEybBsE"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"f9aa9785b7bea5b8b70b15e31370319b","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"f9aa9785b7bea5b8b70b15e31370319b"} device-1 | {"level":"info","message":"POST /devices/ac29ecbf-f954-4348-a172-e285539d097c/websocket 200 15ms","method":"POST","requestID":"f9aa9785b7bea5b8b70b15e31370319b","responseTime":15,"status":200,"url":"/devices/ac29ecbf-f954-4348-a172-e285539d097c/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:56:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ac29ecbf-f954-4348-a172-e285539d097c/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.019","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"f9aa9785b7bea5b8b70b15e31370319b"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"16083f1f85ceaa89e03013ff5f9bc8ac","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"16083f1f85ceaa89e03013ff5f9bc8ac","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/4617b33d-39dc-4ba8-a1b5-a519f7321828/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"16083f1f85ceaa89e03013ff5f9bc8ac"} device-1 | {"level":"info","message":"OPTIONS /devices/4617b33d-39dc-4ba8-a1b5-a519f7321828/websocket 200 1ms","method":"OPTIONS","requestID":"16083f1f85ceaa89e03013ff5f9bc8ac","responseTime":1,"status":200,"url":"/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8","level":"info","message":"auth send jwt","requestID":"33b4cabb3889612befe660edfdebac32"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"33b4cabb3889612befe660edfdebac32","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"33b4cabb3889612befe660edfdebac32"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1214,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1214,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.063256,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"33b4cabb3889612befe660edfdebac32","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240588,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"33b4cabb3889612befe660edfdebac32","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"33b4cabb3889612befe660edfdebac32"} gateway-1 | {"time_local":"18/Jun/2025:09:56:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4617b33d-39dc-4ba8-a1b5-a519f7321828/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.024","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"33b4cabb3889612befe660edfdebac32"} device-1 | {"level":"info","message":"POST /devices/4617b33d-39dc-4ba8-a1b5-a519f7321828/websocket 200 19ms","method":"POST","requestID":"33b4cabb3889612befe660edfdebac32","responseTime":19,"status":200,"url":"/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"3afed8a8ad9406601600a7cc0ba53f5c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"3afed8a8ad9406601600a7cc0ba53f5c","responseTime":0,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/4617b33d-39dc-4ba8-a1b5-a519f7321828? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.026","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3afed8a8ad9406601600a7cc0ba53f5c"} device-1 | {"level":"info","message":"OPTIONS /devices/4617b33d-39dc-4ba8-a1b5-a519f7321828? 200 1ms","method":"OPTIONS","requestID":"3afed8a8ad9406601600a7cc0ba53f5c","responseTime":1,"status":200,"url":"/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8","level":"info","message":"auth send jwt","requestID":"05c7909e855b7c6c9e7ab89426b81d06"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"05c7909e855b7c6c9e7ab89426b81d06","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"05c7909e855b7c6c9e7ab89426b81d06"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1215,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1215,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.778336,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"05c7909e855b7c6c9e7ab89426b81d06","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240588,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"05c7909e855b7c6c9e7ab89426b81d06","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:25.847286918Z"}]},"request_id":"e5898b28-f53e-49db-8dd5-dedb01e4eefd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.277403} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"05c7909e855b7c6c9e7ab89426b81d06","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b57b0e0e-6f63-4922-9847-6231c28071cf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.3066738} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"05c7909e855b7c6c9e7ab89426b81d06","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:25.847286918Z"}]},"request_id":"b6dc66ee-f379-491f-be74-ed0b458e1d7c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.3160858} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"05c7909e855b7c6c9e7ab89426b81d06","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"05c7909e855b7c6c9e7ab89426b81d06"} device-1 | {"level":"info","message":"PATCH /devices/4617b33d-39dc-4ba8-a1b5-a519f7321828? 200 54ms","method":"PATCH","requestID":"05c7909e855b7c6c9e7ab89426b81d06","responseTime":54,"status":200,"url":"/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/4617b33d-39dc-4ba8-a1b5-a519f7321828? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.058","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"05c7909e855b7c6c9e7ab89426b81d06"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8","level":"info","message":"auth send jwt","requestID":"554e7e6b83c1a46d09b40e5a726f551c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"554e7e6b83c1a46d09b40e5a726f551c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"554e7e6b83c1a46d09b40e5a726f551c"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1216,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1216,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.716816,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"554e7e6b83c1a46d09b40e5a726f551c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240588,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"554e7e6b83c1a46d09b40e5a726f551c","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:25.804653640Z"}]},"request_id":"67d51379-fb2c-4c85-a888-4b3be7aad29b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.3561218} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"554e7e6b83c1a46d09b40e5a726f551c","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"554e7e6b83c1a46d09b40e5a726f551c"} gateway-1 | {"time_local":"18/Jun/2025:09:56:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ac29ecbf-f954-4348-a172-e285539d097c? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"554e7e6b83c1a46d09b40e5a726f551c"} device-1 | {"level":"info","message":"GET /devices/ac29ecbf-f954-4348-a172-e285539d097c? 200 34ms","method":"GET","requestID":"554e7e6b83c1a46d09b40e5a726f551c","responseTime":34,"status":200,"url":"/devices/ac29ecbf-f954-4348-a172-e285539d097c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8","level":"info","message":"auth send jwt","requestID":"e14bb0a598f1c5d4cb7e53cac35b90d1"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e14bb0a598f1c5d4cb7e53cac35b90d1","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"e14bb0a598f1c5d4cb7e53cac35b90d1"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1217,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1217,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.685723,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e14bb0a598f1c5d4cb7e53cac35b90d1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240588,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e14bb0a598f1c5d4cb7e53cac35b90d1","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:25.847286918Z"}]},"request_id":"1489b988-94b7-415c-afe6-06104df587af","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.3693883} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"e14bb0a598f1c5d4cb7e53cac35b90d1","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"e14bb0a598f1c5d4cb7e53cac35b90d1"} gateway-1 | {"time_local":"18/Jun/2025:09:56:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4617b33d-39dc-4ba8-a1b5-a519f7321828? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e14bb0a598f1c5d4cb7e53cac35b90d1"} device-1 | {"level":"info","message":"GET /devices/4617b33d-39dc-4ba8-a1b5-a519f7321828? 200 9ms","method":"GET","requestID":"e14bb0a598f1c5d4cb7e53cac35b90d1","responseTime":9,"status":200,"url":"/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8","level":"info","message":"auth send jwt","requestID":"7b1bbcb3d9a815bb4433261b12a5725d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7b1bbcb3d9a815bb4433261b12a5725d","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"7b1bbcb3d9a815bb4433261b12a5725d"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1218,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1218,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.779903,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7b1bbcb3d9a815bb4433261b12a5725d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240588,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7b1bbcb3d9a815bb4433261b12a5725d","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569"},"level":"info","message":"Attempting to run experiment","requestID":"7b1bbcb3d9a815bb4433261b12a5725d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569"},"level":"info","message":"Attempting to book experiment","requestID":"7b1bbcb3d9a815bb4433261b12a5725d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569"},"level":"info","message":"Successfully booked experiment","requestID":"7b1bbcb3d9a815bb4433261b12a5725d"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"80f3bcc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"80f6f110-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1219,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1219,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.629883,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"80f3bcc0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240588,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"80f3bcc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1220,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1220,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.941055,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"80f6f110-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240588,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"80f6f110-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:25.804653640Z"}]},"request_id":"d922977c-a71c-4e00-ad2e-8a41fc1e1463","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.4552023} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"80f3bcc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:25.847286918Z"}]},"request_id":"feef0eda-f1bb-42bd-8c8e-3d74518f0676","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.458288} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"80f3bcc0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"80f6f110-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"GET /devices/ac29ecbf-f954-4348-a172-e285539d097c? 200 31ms","method":"GET","requestID":"80f3bcc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/devices/ac29ecbf-f954-4348-a172-e285539d097c?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"80f6f110-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/4617b33d-39dc-4ba8-a1b5-a519f7321828? 200 12ms","method":"GET","requestID":"80f6f110-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569"},"level":"info","message":"Setting up experiment","requestID":"7b1bbcb3d9a815bb4433261b12a5725d"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"7b1bbcb3d9a815bb4433261b12a5725d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"7b1bbcb3d9a815bb4433261b12a5725d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569"},"level":"info","message":"Successfully locked booking for experiment","requestID":"7b1bbcb3d9a815bb4433261b12a5725d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569"},"level":"info","message":"Successfully set up experiment","requestID":"7b1bbcb3d9a815bb4433261b12a5725d"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"80ffa3a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"80ffcab0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569"},"level":"info","message":"Successfully running experiment","requestID":"7b1bbcb3d9a815bb4433261b12a5725d"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1221,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1221,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.699589,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1222,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"80ffa3a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240588,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"80ffa3a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1222,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.58134,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"80ffcab0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240588,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"80ffcab0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:25.804653640Z"}]},"request_id":"000cd887-4da6-4ad9-bdf1-46c8976a54b7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.51383} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"80ffa3a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:25.847286918Z"}]},"request_id":"bdd18103-6390-4aac-84b6-98bf484d2c28","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.5144863} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"80ffcab0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"80ffa3a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/ac29ecbf-f954-4348-a172-e285539d097c? 200 12ms","method":"GET","requestID":"80ffa3a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/ac29ecbf-f954-4348-a172-e285539d097c?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"80ffcab0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/4617b33d-39dc-4ba8-a1b5-a519f7321828? 200 12ms","method":"GET","requestID":"80ffcab0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5f3fc797-bf45-4803-9e53-b0311f64a569#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5f3fc797-bf45-4803-9e53-b0311f64a569","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"f7a68e25-bab3-4e29-9c0e-e5bf17008761","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.5194762} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f49ccf72-1b2d-43fb-a16f-9ce9cb7338d1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.5197773} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"7b1bbcb3d9a815bb4433261b12a5725d","responseTime":35,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8105be20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1223,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:28Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"7b1bbcb3d9a815bb4433261b12a5725d"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8642da3e-c7c8-44af-b6bc-f5f8fd074266","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.549995} gateway-1 | {"time_local":"18/Jun/2025:09:56:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1216","request_time":"0.177","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7b1bbcb3d9a815bb4433261b12a5725d"} experiment-1 | {"level":"info","message":"POST /experiments? 201 149ms","method":"POST","requestID":"7b1bbcb3d9a815bb4433261b12a5725d","responseTime":149,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1223,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.835987,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8105be20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"8105be20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8","level":"info","message":"auth send jwt","requestID":"a8ab1e0691feebd11a852bec8ff197f2"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a8ab1e0691feebd11a852bec8ff197f2","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a8ab1e0691feebd11a852bec8ff197f2"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8105be20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/ac29ecbf-f954-4348-a172-e285539d097c/signaling 200 10ms","method":"POST","requestID":"8105be20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/ac29ecbf-f954-4348-a172-e285539d097c/signaling"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1224,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1224,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.773166,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a8ab1e0691feebd11a852bec8ff197f2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240588,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"a8ab1e0691feebd11a852bec8ff197f2","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8107b9f0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1225,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:25.804653640Z"}]},"request_id":"177a4248-bdfa-4999-8ff7-84cb11d66c51","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.562839} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a8ab1e0691feebd11a852bec8ff197f2","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"62371ebd-a22c-4db5-844c-589bada43c8d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.563161} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1225,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.70224,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8107b9f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8107b9f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"a8ab1e0691feebd11a852bec8ff197f2"} gateway-1 | {"time_local":"18/Jun/2025:09:56:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ac29ecbf-f954-4348-a172-e285539d097c? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a8ab1e0691feebd11a852bec8ff197f2"} device-1 | {"level":"info","message":"GET /devices/ac29ecbf-f954-4348-a172-e285539d097c? 200 13ms","method":"GET","requestID":"a8ab1e0691feebd11a852bec8ff197f2","responseTime":13,"status":200,"url":"/devices/ac29ecbf-f954-4348-a172-e285539d097c?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8107b9f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4617b33d-39dc-4ba8-a1b5-a519f7321828/signaling 200 34ms","method":"POST","requestID":"8107b9f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"7b1bbcb3d9a815bb4433261b12a5725d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8","level":"info","message":"auth send jwt","requestID":"3204791403c59d5afa6cc5e12ed01f18"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"810d3830-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3204791403c59d5afa6cc5e12ed01f18","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"810d5f40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3204791403c59d5afa6cc5e12ed01f18"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Received request.","req_id":1226,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"client_addr":"127.0.0.1:41298","level":"info","msg":"Sent response.","req_id":1226,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.794357,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1227,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"810d3830-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240588,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"810d3830-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1227,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.59389,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"810d5f40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240588,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"810d5f40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1228,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1228,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.735997,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3204791403c59d5afa6cc5e12ed01f18","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240588,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"3204791403c59d5afa6cc5e12ed01f18","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:25.847286918Z"}]},"request_id":"24965ee9-77c0-4c82-aee7-3543a3496b09","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.6042094} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:25.804653640Z"}]},"request_id":"c085e103-b491-4606-98e1-9adfa8a2ec80","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.6048594} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"810d5f40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"810d3830-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:25.847286918Z"}]},"request_id":"fd07918e-1ccb-4616-b0a8-184f12f5e9e4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.6082852} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3204791403c59d5afa6cc5e12ed01f18","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"810d5f40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/4617b33d-39dc-4ba8-a1b5-a519f7321828? 200 14ms","method":"GET","requestID":"810d5f40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"810d3830-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/ac29ecbf-f954-4348-a172-e285539d097c? 200 16ms","method":"GET","requestID":"810d3830-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":16,"status":200,"url":"/devices/ac29ecbf-f954-4348-a172-e285539d097c?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3204791403c59d5afa6cc5e12ed01f18"} gateway-1 | {"time_local":"18/Jun/2025:09:56:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4617b33d-39dc-4ba8-a1b5-a519f7321828? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3204791403c59d5afa6cc5e12ed01f18"} device-1 | {"level":"info","message":"GET /devices/4617b33d-39dc-4ba8-a1b5-a519f7321828? 200 15ms","method":"GET","requestID":"3204791403c59d5afa6cc5e12ed01f18","responseTime":15,"status":200,"url":"/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569"},"level":"info","message":"Building connection plan","requestID":"7b1bbcb3d9a815bb4433261b12a5725d"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"358e3251-67af-4701-9fd4-c792ce65c9f2"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"11b444e7-71fa-47c6-beb9-2d82f8af11a8"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"e93627f4-f3a6-484e-8373-5d93b40b39cc"}]},"level":"info","message":"Built pairwise service configurations","requestID":"7b1bbcb3d9a815bb4433261b12a5725d"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"7b1bbcb3d9a815bb4433261b12a5725d"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"810ff750-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1229,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1229,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.616867,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"810ff750-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240588,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU4OH0.DrT79SnmkJqWuLVofYzBc8rhsHUybtq3FDVcMVD3al8"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"810ff750-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"737897d8-d345-4370-b4b0-f2892ad1f19b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.6470535} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eed9cd29-f8ee-4ba3-b13a-8569dda6e346","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.6472108} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"810ff750-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"810ff750-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"810ff750-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/cb337e87-903b-43cf-8f38-380cb7aa05a0'","requestID":"810ff750-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/cb337e87-903b-43cf-8f38-380cb7aa05a0'","requestID":"810ff750-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"810ff750-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 47ms","method":"POST","requestID":"810ff750-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":47,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"810ff750-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"7b1bbcb3d9a815bb4433261b12a5725d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"811eeb70-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1230,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7c1bb64f-a415-43cc-9524-409413a32ecb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.7153335} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1230,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.81673,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"811eeb70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 25ms","method":"POST","requestID":"811eeb70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":25,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"811eeb70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/ac29ecbf-f954-4348-a172-e285539d097c/signaling 200 29ms","method":"POST","requestID":"811eeb70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/devices/ac29ecbf-f954-4348-a172-e285539d097c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8123a660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"device":"4617b33d-39dc-4ba8-a1b5-a519f7321828","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"4617b33d-39dc-4ba8-a1b5-a519f7321828","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1231,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:28Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b08a1adf-d1c3-43a7-90cb-2626128a1ebb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240588.7467384} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1231,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.789438,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:28Z"} device-1 | {"content":{"sdp":"v=0\r\no=- 4309307834468283869 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:sta+\r\na=ice-pwd:u4gHZypZa7gvtYjVFLXsTZUt\r\na=ice-options:trickle\r\na=fingerprint:sha-256 1D:9D:42:04:63:D6:2A:DD:E8:6D:5D:EF:CF:D2:62:CB:42:52:B1:E2:92:33:4A:11:8B:D5:D2:0A:FC:E7:A8:E3\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"4617b33d-39dc-4ba8-a1b5-a519f7321828","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8123a660-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"8123a660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8123a660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4617b33d-39dc-4ba8-a1b5-a519f7321828/signaling 200 10ms","method":"POST","requestID":"8123a660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828/signaling"} device-1 | {"device":"ac29ecbf-f954-4348-a172-e285539d097c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"cb337e87-903b-43cf-8f38-380cb7aa05a0","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"ac29ecbf-f954-4348-a172-e285539d097c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"ac29ecbf-f954-4348-a172-e285539d097c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"ac29ecbf-f954-4348-a172-e285539d097c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"ac29ecbf-f954-4348-a172-e285539d097c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/cb337e87-903b-43cf-8f38-380cb7aa05a0' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"cb337e87-903b-43cf-8f38-380cb7aa05a0","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"44b2e560b33379af60b56f370f61765d","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"44b2e560b33379af60b56f370f61765d","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/cb337e87-903b-43cf-8f38-380cb7aa05a0"}}},"level":"info","message":"received a callback","requestID":"44b2e560b33379af60b56f370f61765d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"44b2e560b33379af60b56f370f61765d","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"44b2e560b33379af60b56f370f61765d"} device-1 | {"content":{"candidate":"candidate:4087234969 1 udp 2113937151 29181c45-11be-4438-8507-72bb8270183a.local 40516 typ host generation 0 ufrag sta+ network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"4617b33d-39dc-4ba8-a1b5-a519f7321828","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:1622532234 1 udp 1677729535 141.24.211.56 40516 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag sta+ network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"4617b33d-39dc-4ba8-a1b5-a519f7321828","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"4617b33d-39dc-4ba8-a1b5-a519f7321828","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"4617b33d-39dc-4ba8-a1b5-a519f7321828","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828'"} device-1 | {"data":{"peerconnection":"cb337e87-903b-43cf-8f38-380cb7aa05a0","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"ac29ecbf-f954-4348-a172-e285539d097c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"4617b33d-39dc-4ba8-a1b5-a519f7321828","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"ac29ecbf-f954-4348-a172-e285539d097c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"cb337e87-903b-43cf-8f38-380cb7aa05a0","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/cb337e87-903b-43cf-8f38-380cb7aa05a0' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"cb337e87-903b-43cf-8f38-380cb7aa05a0","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b9b9f3dab8c9b615fe3af2293c2a98fd","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"b9b9f3dab8c9b615fe3af2293c2a98fd","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/cb337e87-903b-43cf-8f38-380cb7aa05a0"}}},"level":"info","message":"received a callback","requestID":"b9b9f3dab8c9b615fe3af2293c2a98fd"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"825fcfe0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1232,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:30Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fcb337e87-903b-43cf-8f38-380cb7aa05a0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cfcf3bd2-d518-4a5a-80cc-d22a8d0a1f0f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240590.818812} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1232,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.697583,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/cb337e87-903b-43cf-8f38-380cb7aa05a0","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"825fcfe0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/cb337e87-903b-43cf-8f38-380cb7aa05a0","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"825fcfe0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"825fcfe0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/cb337e87-903b-43cf-8f38-380cb7aa05a0 200 8ms","method":"GET","requestID":"825fcfe0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/peerconnections/cb337e87-903b-43cf-8f38-380cb7aa05a0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 49ms","method":"POST","requestID":"b9b9f3dab8c9b615fe3af2293c2a98fd","responseTime":49,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch","requestID":"b9b9f3dab8c9b615fe3af2293c2a98fd"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8266d4c0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1233,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:30Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"05525338-b81c-495c-9cbb-8d8949971e6a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240590.8643687} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1233,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.504578,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8266d4c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8266d4c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8266d4c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/ac29ecbf-f954-4348-a172-e285539d097c/signaling 200 8ms","method":"POST","requestID":"8266d4c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/ac29ecbf-f954-4348-a172-e285539d097c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"82685b60-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1234,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:30Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fb63a840-37c5-4852-a00c-a81b5ffe3a9f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240590.8993707} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1234,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.561586,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"82685b60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"82685b60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"82685b60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4617b33d-39dc-4ba8-a1b5-a519f7321828/signaling 200 33ms","method":"POST","requestID":"82685b60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5MH0.XklmE-LqJxVqxlCCpggNScRd6AISdA0J0OTwyrELO4I","level":"info","message":"auth send jwt","requestID":"e20c8307ad14640fe0e0540f59d7e6c5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e20c8307ad14640fe0e0540f59d7e6c5","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/5f3fc797-bf45-4803-9e53-b0311f64a569","requestID":"e20c8307ad14640fe0e0540f59d7e6c5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1235,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:30Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1235,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.77813,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e20c8307ad14640fe0e0540f59d7e6c5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240590,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5MH0.XklmE-LqJxVqxlCCpggNScRd6AISdA0J0OTwyrELO4I"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"e20c8307ad14640fe0e0540f59d7e6c5","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/5f3fc797-bf45-4803-9e53-b0311f64a569","requestID":"e20c8307ad14640fe0e0540f59d7e6c5"} gateway-1 | {"time_local":"18/Jun/2025:09:56:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/5f3fc797-bf45-4803-9e53-b0311f64a569 HTTP/1.1","status": "200","body_bytes_sent":"1289","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e20c8307ad14640fe0e0540f59d7e6c5"} experiment-1 | {"level":"info","message":"GET /experiments/5f3fc797-bf45-4803-9e53-b0311f64a569 200 12ms","method":"GET","requestID":"e20c8307ad14640fe0e0540f59d7e6c5","responseTime":12,"status":200,"url":"/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5MH0.XklmE-LqJxVqxlCCpggNScRd6AISdA0J0OTwyrELO4I","level":"info","message":"auth send jwt","requestID":"f57ebf41ae41ac725c01c29d10e7b895"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f57ebf41ae41ac725c01c29d10e7b895","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/5f3fc797-bf45-4803-9e53-b0311f64a569","requestID":"f57ebf41ae41ac725c01c29d10e7b895"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1236,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:30Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1236,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.679675,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:30Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f57ebf41ae41ac725c01c29d10e7b895","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240590,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5MH0.XklmE-LqJxVqxlCCpggNScRd6AISdA0J0OTwyrELO4I"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f57ebf41ae41ac725c01c29d10e7b895","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569"},"level":"info","message":"Attempting to finish experiment","requestID":"f57ebf41ae41ac725c01c29d10e7b895"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"82757ac0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1237,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:30Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1237,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.645374,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:30Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/cb337e87-903b-43cf-8f38-380cb7aa05a0","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"82757ac0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/cb337e87-903b-43cf-8f38-380cb7aa05a0","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240590,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5MH0.XklmE-LqJxVqxlCCpggNScRd6AISdA0J0OTwyrELO4I"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"82757ac0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/cb337e87-903b-43cf-8f38-380cb7aa05a0","device":"4617b33d-39dc-4ba8-a1b5-a519f7321828","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"ac29ecbf-f954-4348-a172-e285539d097c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"ac29ecbf-f954-4348-a172-e285539d097c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"ac29ecbf-f954-4348-a172-e285539d097c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/cb337e87-903b-43cf-8f38-380cb7aa05a0' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/cb337e87-903b-43cf-8f38-380cb7aa05a0' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"cb337e87-903b-43cf-8f38-380cb7aa05a0","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fcb337e87-903b-43cf-8f38-380cb7aa05a0': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fcb337e87-903b-43cf-8f38-380cb7aa05a0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"3b0db99f-bce6-472a-9fe3-2c6a6f8045c5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240590.9943643} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5ec99075-65b5-4b6c-955b-2eca635aec74","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240590.994663} authorization-1 | {"level":"info","message":"POST /relations/update 200 30ms","method":"POST","requestID":"82757ac0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"867c046de9fd6151224a5505c3663391","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"867c046de9fd6151224a5505c3663391","responseTime":0,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"30a5a0dc5c1cb5e293b9f500763e2816","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"30a5a0dc5c1cb5e293b9f500763e2816","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/cb337e87-903b-43cf-8f38-380cb7aa05a0"}}},"level":"info","message":"received a callback","requestID":"867c046de9fd6151224a5505c3663391"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/cb337e87-903b-43cf-8f38-380cb7aa05a0"}}},"level":"info","message":"received a callback","requestID":"30a5a0dc5c1cb5e293b9f500763e2816"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"82757ac0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/cb337e87-903b-43cf-8f38-380cb7aa05a0 204 59ms","method":"DELETE","requestID":"82757ac0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":59,"status":204,"url":"/peerconnections/cb337e87-903b-43cf-8f38-380cb7aa05a0"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569"},"level":"info","message":"Successfully finished experiment","requestID":"f57ebf41ae41ac725c01c29d10e7b895"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"82850b20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1238,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:31Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac29ecbf-f954-4348-a172-e285539d097c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f780ab8c-79c7-472a-85f2-42df060dc0c4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240591.0627854} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1238,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.334783,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"82850b20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"82850b20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"82850b20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/ac29ecbf-f954-4348-a172-e285539d097c/signaling 200 33ms","method":"POST","requestID":"82850b20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/ac29ecbf-f954-4348-a172-e285539d097c/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5f3fc797-bf45-4803-9e53-b0311f64a569': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5f3fc797-bf45-4803-9e53-b0311f64a569","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"b7f0859d-6b8b-4456-9cf6-abe3d4513fac","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240591.0933578} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"50bb5e1a-7b67-4233-b381-ab24b2f64c97","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240591.0935478} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"828a6250-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"f57ebf41ae41ac725c01c29d10e7b895","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1239,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:31Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4617b33d-39dc-4ba8-a1b5-a519f7321828","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"feabdbb3-3540-4711-942f-e34eaf06c099","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240591.098052} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1239,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.242893,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"828a6250-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"828a6250-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"828a6250-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4617b33d-39dc-4ba8-a1b5-a519f7321828/signaling 200 9ms","method":"POST","requestID":"828a6250-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/5f3fc797-bf45-4803-9e53-b0311f64a569","requestID":"f57ebf41ae41ac725c01c29d10e7b895"} gateway-1 | {"time_local":"18/Jun/2025:09:56:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/5f3fc797-bf45-4803-9e53-b0311f64a569 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.242","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f57ebf41ae41ac725c01c29d10e7b895"} experiment-1 | {"level":"info","message":"DELETE /experiments/5f3fc797-bf45-4803-9e53-b0311f64a569 204 240ms","method":"DELETE","requestID":"f57ebf41ae41ac725c01c29d10e7b895","responseTime":240,"status":204,"url":"/experiments/5f3fc797-bf45-4803-9e53-b0311f64a569"} gateway-1 | {"time_local":"18/Jun/2025:09:56:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3209","request_time":"4.323","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"bb87ed090fd82c93359db8f255701f9a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 192ms","method":"POST","requestID":"867c046de9fd6151224a5505c3663391","responseTime":192,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.196","http_referrer":"","http_user_agent":"node-fetch","requestID":"867c046de9fd6151224a5505c3663391"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 192ms","method":"POST","requestID":"30a5a0dc5c1cb5e293b9f500763e2816","responseTime":192,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.195","http_referrer":"","http_user_agent":"node-fetch","requestID":"30a5a0dc5c1cb5e293b9f500763e2816"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5MX0.s-bmKX-GUojjpaqFPcfgqJW30oN_4hFbji54Ph48xS4","level":"info","message":"auth send jwt","requestID":"4bc3d7545494cbe2e46efa12b18f154d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4bc3d7545494cbe2e46efa12b18f154d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"4bc3d7545494cbe2e46efa12b18f154d"} gateway-1 | {"time_local":"18/Jun/2025:09:56:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3400","request_time":"3.017","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"5ccd2a5aabcfb246305d1ded338e2eef"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1240,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:31Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1240,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.820936,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4bc3d7545494cbe2e46efa12b18f154d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240591,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5MX0.s-bmKX-GUojjpaqFPcfgqJW30oN_4hFbji54Ph48xS4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4bc3d7545494cbe2e46efa12b18f154d","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/ac29ecbf-f954-4348-a172-e285539d097c' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d6f15c82-d62d-4172-9311-ed397f4d498e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240591.2416582} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4bc3d7545494cbe2e46efa12b18f154d","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/4617b33d-39dc-4ba8-a1b5-a519f7321828' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bf9f1d6f-b066-4f3b-80d9-2cb55615f50c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240591.2464426} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"4bc3d7545494cbe2e46efa12b18f154d","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"6665d4e9-5d03-492e-a9bb-f7c750d55a72","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240591.2552059} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"86862494-24ed-49c7-a006-3e8f246d1a87","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240591.255426} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"4bc3d7545494cbe2e46efa12b18f154d","responseTime":37,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:31.255156512Z"}]},"request_id":"74ca8888-dd6d-4989-a7a2-35d2af2f9e84","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240591.2845428} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4bc3d7545494cbe2e46efa12b18f154d","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"4bc3d7545494cbe2e46efa12b18f154d"} gateway-1 | {"time_local":"18/Jun/2025:09:56:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.097","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4bc3d7545494cbe2e46efa12b18f154d"} device-1 | {"level":"info","message":"POST /devices? 201 91ms","method":"POST","requestID":"4bc3d7545494cbe2e46efa12b18f154d","responseTime":91,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5MX0.s-bmKX-GUojjpaqFPcfgqJW30oN_4hFbji54Ph48xS4","level":"info","message":"auth send jwt","requestID":"e42d9f43351de6baa078327a0ce49c4e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e42d9f43351de6baa078327a0ce49c4e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"e42d9f43351de6baa078327a0ce49c4e"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1241,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:31Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1241,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.751588,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e42d9f43351de6baa078327a0ce49c4e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240591,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5MX0.s-bmKX-GUojjpaqFPcfgqJW30oN_4hFbji54Ph48xS4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e42d9f43351de6baa078327a0ce49c4e","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1c1d3198-3dc7-4bfe-b576-84e74b1f3e1c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240591.329607} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"e42d9f43351de6baa078327a0ce49c4e","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"823d1cd5-0b64-40f9-ba41-cbb5b811a26e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240591.333691} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"e42d9f43351de6baa078327a0ce49c4e","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"19359200-59cd-4b59-a074-0194d05ca7a0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240591.3452501} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6779f4c1-6374-4695-a9e7-1d52312ba874","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240591.3454514} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"e42d9f43351de6baa078327a0ce49c4e","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:31.345212698Z"}]},"request_id":"a4c1b1fb-91b7-4e07-b460-14d017db57e4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240591.3495407} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e42d9f43351de6baa078327a0ce49c4e","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"e42d9f43351de6baa078327a0ce49c4e"} gateway-1 | {"time_local":"18/Jun/2025:09:56:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.064","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e42d9f43351de6baa078327a0ce49c4e"} device-1 | {"level":"info","message":"POST /devices? 201 60ms","method":"POST","requestID":"e42d9f43351de6baa078327a0ce49c4e","responseTime":60,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo","level":"info","message":"auth send jwt","requestID":"2168f7b07fa0f59bfe5e9abf5b0e063e"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2168f7b07fa0f59bfe5e9abf5b0e063e","responseTime":3,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo","level":"info","message":"auth send jwt","requestID":"46cb64b23de82c8d7804e930dfeca14c"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"46cb64b23de82c8d7804e930dfeca14c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"2168f7b07fa0f59bfe5e9abf5b0e063e"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"46cb64b23de82c8d7804e930dfeca14c"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1242,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1242,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.722024,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1243,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2168f7b07fa0f59bfe5e9abf5b0e063e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240592,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2168f7b07fa0f59bfe5e9abf5b0e063e","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1243,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.549225,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"46cb64b23de82c8d7804e930dfeca14c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240592,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"46cb64b23de82c8d7804e930dfeca14c","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:31.255156512Z"}]},"request_id":"612f3f6c-8531-4227-a109-0a218effd99d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.2917016} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2168f7b07fa0f59bfe5e9abf5b0e063e","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:31.345212698Z"}]},"request_id":"3f1db04d-44b6-43a3-975f-d79d74256586","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.2921534} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"46cb64b23de82c8d7804e930dfeca14c","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"22375e5d-63e0-434f-ac73-1f90b8da2470","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.2955298} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"2168f7b07fa0f59bfe5e9abf5b0e063e","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e2223655-e320-4d20-8e70-9e42f9f76cec","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.2966378} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"46cb64b23de82c8d7804e930dfeca14c","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:31.345212698Z"}]},"request_id":"c7cf0f2a-08d2-4459-83b1-e6b8d6d6ffe1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.299986} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"46cb64b23de82c8d7804e930dfeca14c","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"46cb64b23de82c8d7804e930dfeca14c"} device-1 | {"level":"info","message":"PATCH /devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6 200 43ms","method":"PATCH","requestID":"46cb64b23de82c8d7804e930dfeca14c","responseTime":43,"status":200,"url":"/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6"} gateway-1 | {"time_local":"18/Jun/2025:09:56:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6 HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.049","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"46cb64b23de82c8d7804e930dfeca14c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo","level":"info","message":"auth send jwt","requestID":"cb821e73faea8d8b4474afbbd9923e8a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cb821e73faea8d8b4474afbbd9923e8a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"cb821e73faea8d8b4474afbbd9923e8a"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1244,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1244,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.678825,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"cb821e73faea8d8b4474afbbd9923e8a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240592,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"cb821e73faea8d8b4474afbbd9923e8a","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:31.255156512Z"}]},"request_id":"6b53a39f-2db3-4e17-ab1e-5cf7b462248f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.3100536} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2168f7b07fa0f59bfe5e9abf5b0e063e","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"2168f7b07fa0f59bfe5e9abf5b0e063e"} gateway-1 | {"time_local":"18/Jun/2025:09:56:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/5c005e46-540e-495b-a0f0-388f08455464 HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.060","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"2168f7b07fa0f59bfe5e9abf5b0e063e"} device-1 | {"level":"info","message":"PATCH /devices/5c005e46-540e-495b-a0f0-388f08455464 200 55ms","method":"PATCH","requestID":"2168f7b07fa0f59bfe5e9abf5b0e063e","responseTime":55,"status":200,"url":"/devices/5c005e46-540e-495b-a0f0-388f08455464"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo","level":"info","message":"auth send jwt","requestID":"cd30a6fbfe8e6acac49652864f2d08ed"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"cd30a6fbfe8e6acac49652864f2d08ed","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"cd30a6fbfe8e6acac49652864f2d08ed"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1245,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1245,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.65192,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"cd30a6fbfe8e6acac49652864f2d08ed","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240592,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"cd30a6fbfe8e6acac49652864f2d08ed","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"cb821e73faea8d8b4474afbbd9923e8a"} gateway-1 | {"time_local":"18/Jun/2025:09:56:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.043","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"cb821e73faea8d8b4474afbbd9923e8a"} device-1 | {"level":"info","message":"POST /devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6/websocket 200 39ms","method":"POST","requestID":"cb821e73faea8d8b4474afbbd9923e8a","responseTime":39,"status":200,"url":"/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"cd30a6fbfe8e6acac49652864f2d08ed"} device-1 | {"level":"info","message":"POST /devices/5c005e46-540e-495b-a0f0-388f08455464/websocket 200 13ms","method":"POST","requestID":"cd30a6fbfe8e6acac49652864f2d08ed","responseTime":13,"status":200,"url":"/devices/5c005e46-540e-495b-a0f0-388f08455464/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:56:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/5c005e46-540e-495b-a0f0-388f08455464/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.016","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"cd30a6fbfe8e6acac49652864f2d08ed"} device-1 | {"level":"info","message":"device 'http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo","level":"info","message":"auth send jwt","requestID":"902c8f47d3b1464983da9f47f58572c2"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"902c8f47d3b1464983da9f47f58572c2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"902c8f47d3b1464983da9f47f58572c2"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1246,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1246,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.697951,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"902c8f47d3b1464983da9f47f58572c2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240592,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"902c8f47d3b1464983da9f47f58572c2","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:31.255156512Z"}]},"request_id":"ec6be1c0-984e-467e-84ad-56cca65b78d5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.4030817} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"902c8f47d3b1464983da9f47f58572c2","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"902c8f47d3b1464983da9f47f58572c2"} device-1 | {"level":"info","message":"GET /devices/5c005e46-540e-495b-a0f0-388f08455464? 200 10ms","method":"GET","requestID":"902c8f47d3b1464983da9f47f58572c2","responseTime":10,"status":200,"url":"/devices/5c005e46-540e-495b-a0f0-388f08455464?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5c005e46-540e-495b-a0f0-388f08455464? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"902c8f47d3b1464983da9f47f58572c2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo","level":"info","message":"auth send jwt","requestID":"a5bc6067f4c134a93ccc343598d7f071"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"a5bc6067f4c134a93ccc343598d7f071","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a5bc6067f4c134a93ccc343598d7f071"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1247,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1247,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.703054,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a5bc6067f4c134a93ccc343598d7f071","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240592,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a5bc6067f4c134a93ccc343598d7f071","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:31.345212698Z"}]},"request_id":"4a582e72-b2bd-4432-bc39-6963de484301","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.441622} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a5bc6067f4c134a93ccc343598d7f071","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"a5bc6067f4c134a93ccc343598d7f071"} gateway-1 | {"time_local":"18/Jun/2025:09:56:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a5bc6067f4c134a93ccc343598d7f071"} device-1 | {"level":"info","message":"GET /devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6? 200 11ms","method":"GET","requestID":"a5bc6067f4c134a93ccc343598d7f071","responseTime":11,"status":200,"url":"/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo","level":"info","message":"auth send jwt","requestID":"2943ada930ba3564809640bc29892f02"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2943ada930ba3564809640bc29892f02","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"2943ada930ba3564809640bc29892f02"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1248,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1248,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.636675,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2943ada930ba3564809640bc29892f02","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240592,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"2943ada930ba3564809640bc29892f02","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5bc723ea-9ade-4af7-9161-357442a037e2"},"level":"info","message":"Attempting to run experiment","requestID":"2943ada930ba3564809640bc29892f02"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5bc723ea-9ade-4af7-9161-357442a037e2"},"level":"info","message":"Attempting to book experiment","requestID":"2943ada930ba3564809640bc29892f02"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5bc723ea-9ade-4af7-9161-357442a037e2"},"level":"info","message":"Successfully booked experiment","requestID":"2943ada930ba3564809640bc29892f02"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"83611340-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"83613a50-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1249,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1250,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1249,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.418427,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"83611340-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240592,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"83611340-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1250,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.903462,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"83613a50-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240592,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"83613a50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:31.255156512Z"}]},"request_id":"9b0d1e09-2c67-4a2b-a3d7-aa3a6e39ac94","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.5318573} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"83611340-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:31.345212698Z"}]},"request_id":"9cc395bf-9d02-4036-b203-164f52d7a4f0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.5324752} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"83613a50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"83611340-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/5c005e46-540e-495b-a0f0-388f08455464? 200 36ms","method":"GET","requestID":"83611340-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/5c005e46-540e-495b-a0f0-388f08455464?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"83613a50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6? 200 35ms","method":"GET","requestID":"83613a50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5bc723ea-9ade-4af7-9161-357442a037e2"},"level":"info","message":"Setting up experiment","requestID":"2943ada930ba3564809640bc29892f02"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"2943ada930ba3564809640bc29892f02"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5bc723ea-9ade-4af7-9161-357442a037e2"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"2943ada930ba3564809640bc29892f02"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5bc723ea-9ade-4af7-9161-357442a037e2"},"level":"info","message":"Successfully locked booking for experiment","requestID":"2943ada930ba3564809640bc29892f02"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5bc723ea-9ade-4af7-9161-357442a037e2"},"level":"info","message":"Successfully set up experiment","requestID":"2943ada930ba3564809640bc29892f02"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"836dbd70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"836de480-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5bc723ea-9ade-4af7-9161-357442a037e2"},"level":"info","message":"Successfully running experiment","requestID":"2943ada930ba3564809640bc29892f02"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1251,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1251,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.6546,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1252,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"836dbd70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240592,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"836dbd70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1252,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.573601,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"836de480-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240592,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"836de480-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:31.255156512Z"}]},"request_id":"42ae683b-eeee-44dd-bd70-f7b580d90045","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.5911386} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"836dbd70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:31.345212698Z"}]},"request_id":"3602873a-95c8-4df9-9cd0-6003cbd8efd4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.5917146} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"836de480-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"836dbd70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/5c005e46-540e-495b-a0f0-388f08455464? 200 12ms","method":"GET","requestID":"836dbd70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/5c005e46-540e-495b-a0f0-388f08455464?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"836de480-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6? 200 12ms","method":"GET","requestID":"836de480-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"83700760-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5bc723ea-9ade-4af7-9161-357442a037e2#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5bc723ea-9ade-4af7-9161-357442a037e2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"2a1d3ac9-fd5d-473b-b191-e38c94bf022b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.599964} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b4d433a2-d2b2-4cae-9a9c-9df5d19f75a6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.6002297} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1253,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"2943ada930ba3564809640bc29892f02","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8290f0ae-c7e9-4a3a-9387-8476327ce1b3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.6266108} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1253,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.523049,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"83700760-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"83700760-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"83700760-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/5c005e46-540e-495b-a0f0-388f08455464/signaling 200 33ms","method":"POST","requestID":"83700760-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/5c005e46-540e-495b-a0f0-388f08455464/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/5bc723ea-9ade-4af7-9161-357442a037e2","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"2943ada930ba3564809640bc29892f02"} gateway-1 | {"time_local":"18/Jun/2025:09:56:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1220","request_time":"0.185","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2943ada930ba3564809640bc29892f02"} experiment-1 | {"level":"info","message":"POST /experiments? 201 183ms","method":"POST","requestID":"2943ada930ba3564809640bc29892f02","responseTime":183,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"837585a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo","level":"info","message":"auth send jwt","requestID":"ff2863067ac6af3c8f210c100b26e85f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ff2863067ac6af3c8f210c100b26e85f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ff2863067ac6af3c8f210c100b26e85f"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1254,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1255,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ad7fcf10-f6d0-408c-9b1d-77f1d4f91a94","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.638174} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1255,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.745285,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ff2863067ac6af3c8f210c100b26e85f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240592,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ff2863067ac6af3c8f210c100b26e85f","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1254,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.264986,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"837585a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"837585a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:31.255156512Z"}]},"request_id":"4d050b51-84df-4ee4-92d8-bdcf0351e08c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.6420474} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"837585a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6/signaling 200 8ms","method":"POST","requestID":"837585a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ff2863067ac6af3c8f210c100b26e85f","responseTime":3,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5bc723ea-9ade-4af7-9161-357442a037e2"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"2943ada930ba3564809640bc29892f02"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"83770c40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"83773350-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ff2863067ac6af3c8f210c100b26e85f"} gateway-1 | {"time_local":"18/Jun/2025:09:56:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5c005e46-540e-495b-a0f0-388f08455464? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ff2863067ac6af3c8f210c100b26e85f"} device-1 | {"level":"info","message":"GET /devices/5c005e46-540e-495b-a0f0-388f08455464? 200 10ms","method":"GET","requestID":"ff2863067ac6af3c8f210c100b26e85f","responseTime":10,"status":200,"url":"/devices/5c005e46-540e-495b-a0f0-388f08455464?"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1256,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1257,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1256,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.94306,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo","level":"info","message":"auth send jwt","requestID":"992f04ede667b2ef101e53947192238a"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"992f04ede667b2ef101e53947192238a","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"992f04ede667b2ef101e53947192238a"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"83770c40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240592,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"83770c40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1257,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.640952,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"83773350-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240592,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"83773350-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:31.255156512Z"}]},"request_id":"3bdf5fdf-a71f-44c6-ab90-c33f97dc3717","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.67681} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:31.345212698Z"}]},"request_id":"d0de6593-c360-41c1-9ad3-5bc893dfcf6d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.6775146} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"83770c40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"83773350-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1258,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1258,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.651308,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"992f04ede667b2ef101e53947192238a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240592,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"992f04ede667b2ef101e53947192238a","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"83770c40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/5c005e46-540e-495b-a0f0-388f08455464? 200 39ms","method":"GET","requestID":"83770c40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":200,"url":"/devices/5c005e46-540e-495b-a0f0-388f08455464?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"83773350-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6? 200 38ms","method":"GET","requestID":"83773350-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":38,"status":200,"url":"/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:31.345212698Z"}]},"request_id":"19638efd-e235-40e1-97b0-66b7fa704b07","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.6844885} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5bc723ea-9ade-4af7-9161-357442a037e2"},"level":"info","message":"Building connection plan","requestID":"2943ada930ba3564809640bc29892f02"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"8643f1c9-42fb-465a-a5b1-c933c0b7f727"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"5c27aed9-1e09-43f5-8916-b9d29a16a8d8"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"fdbe9ee3-1467-41f8-a00d-4843d5378acd"}]},"level":"info","message":"Built pairwise service configurations","requestID":"2943ada930ba3564809640bc29892f02"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"2943ada930ba3564809640bc29892f02"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"992f04ede667b2ef101e53947192238a","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"837d9bf0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"992f04ede667b2ef101e53947192238a"} gateway-1 | {"time_local":"18/Jun/2025:09:56:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"992f04ede667b2ef101e53947192238a"} device-1 | {"level":"info","message":"GET /devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6? 200 12ms","method":"GET","requestID":"992f04ede667b2ef101e53947192238a","responseTime":12,"status":200,"url":"/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6?"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1259,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1259,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.642269,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"837d9bf0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240592,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Mn0.svMG90cB_Djdj780B4BpO2ZvFuGFJfDXZDGdJQ7afEo"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"837d9bf0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"3f626dcb-7b1d-4848-9cac-9d96605a5ac8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.6978679} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ed335cb5-4976-459a-8cda-808ccff62dd8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.698209} authorization-1 | {"level":"info","message":"POST /relations/update 200 31ms","method":"POST","requestID":"837d9bf0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"837d9bf0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"837d9bf0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/26457c79-a90c-453a-a5fc-1b51060f570e'","requestID":"837d9bf0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/26457c79-a90c-453a-a5fc-1b51060f570e'","requestID":"837d9bf0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"837d9bf0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 52ms","method":"POST","requestID":"837d9bf0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":52,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"837d9bf0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5bc723ea-9ade-4af7-9161-357442a037e2"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"2943ada930ba3564809640bc29892f02"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"838cb720-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1260,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f1eab4ca-6ab4-49ae-8eee-7ca31e4d83d6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.790946} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1260,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.598131,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"838cb720-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"838cb720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"838cb720-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/5c005e46-540e-495b-a0f0-388f08455464/signaling 200 8ms","method":"POST","requestID":"838cb720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/5c005e46-540e-495b-a0f0-388f08455464/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"838e3dc0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1261,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1187826e-f28b-4a46-b2dd-130bcbcce471","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240592.824032} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1261,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.245532,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"838e3dc0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"838e3dc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"838e3dc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6/signaling 200 31ms","method":"POST","requestID":"838e3dc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6/signaling"} device-1 | {"device":"5c005e46-540e-495b-a0f0-388f08455464","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"26457c79-a90c-453a-a5fc-1b51060f570e","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"3b147e6b-c73a-45ac-9d19-45d09ffd75e6","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"26457c79-a90c-453a-a5fc-1b51060f570e","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"3b147e6b-c73a-45ac-9d19-45d09ffd75e6","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"3b147e6b-c73a-45ac-9d19-45d09ffd75e6","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"3b147e6b-c73a-45ac-9d19-45d09ffd75e6","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"3b147e6b-c73a-45ac-9d19-45d09ffd75e6","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/26457c79-a90c-453a-a5fc-1b51060f570e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"26457c79-a90c-453a-a5fc-1b51060f570e","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"71e583f2aab55cebe13688ef8bcbbf86","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"71e583f2aab55cebe13688ef8bcbbf86","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/26457c79-a90c-453a-a5fc-1b51060f570e"}}},"level":"info","message":"received a callback","requestID":"71e583f2aab55cebe13688ef8bcbbf86"} device-1 | {"device":"5c005e46-540e-495b-a0f0-388f08455464","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5c005e46-540e-495b-a0f0-388f08455464","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5c005e46-540e-495b-a0f0-388f08455464","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"71e583f2aab55cebe13688ef8bcbbf86","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"71e583f2aab55cebe13688ef8bcbbf86"} device-1 | {"data":{"peerconnection":"26457c79-a90c-453a-a5fc-1b51060f570e","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"3b147e6b-c73a-45ac-9d19-45d09ffd75e6","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5c005e46-540e-495b-a0f0-388f08455464","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5c005e46-540e-495b-a0f0-388f08455464","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"3b147e6b-c73a-45ac-9d19-45d09ffd75e6","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"26457c79-a90c-453a-a5fc-1b51060f570e","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/26457c79-a90c-453a-a5fc-1b51060f570e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"26457c79-a90c-453a-a5fc-1b51060f570e","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ffc8889b31b18ce390909b7e7ba32b2e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"ffc8889b31b18ce390909b7e7ba32b2e","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/26457c79-a90c-453a-a5fc-1b51060f570e"}}},"level":"info","message":"received a callback","requestID":"ffc8889b31b18ce390909b7e7ba32b2e"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"84ca4030-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1262,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:34Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F26457c79-a90c-453a-a5fc-1b51060f570e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ed60b6a6-dc9f-4f12-a1fd-3a5cd3f89690","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240594.8721795} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1262,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.616179,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/26457c79-a90c-453a-a5fc-1b51060f570e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"84ca4030-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/26457c79-a90c-453a-a5fc-1b51060f570e","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"84ca4030-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"84ca4030-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/26457c79-a90c-453a-a5fc-1b51060f570e 200 8ms","method":"GET","requestID":"84ca4030-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/peerconnections/26457c79-a90c-453a-a5fc-1b51060f570e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 25ms","method":"POST","requestID":"ffc8889b31b18ce390909b7e7ba32b2e","responseTime":25,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch","requestID":"ffc8889b31b18ce390909b7e7ba32b2e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"84cd7480-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1263,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:34Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f21e7ca0-790d-4f5a-af23-4943071fd195","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240594.8935063} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1263,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.647825,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"84cd7480-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"84cd7480-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"84cd7480-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6/signaling 200 9ms","method":"POST","requestID":"84cd7480-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"84cf2230-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1264,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:34Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6c997d51-77c3-4a95-941f-3730a829a93a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240594.9055598} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1264,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.285532,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"84cf2230-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"84cf2230-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"84cf2230-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/5c005e46-540e-495b-a0f0-388f08455464/signaling 200 14ms","method":"POST","requestID":"84cf2230-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/5c005e46-540e-495b-a0f0-388f08455464/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5NH0.3NyPKTiJd-AmgC-AjFTrnbFJ3lot6a5LfS2Fil_p3D8","level":"info","message":"auth send jwt","requestID":"46cf74eccc7f822a5ff8f59b21175901"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"46cf74eccc7f822a5ff8f59b21175901","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/5bc723ea-9ade-4af7-9161-357442a037e2","requestID":"46cf74eccc7f822a5ff8f59b21175901"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1265,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:34Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1265,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.981612,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5bc723ea-9ade-4af7-9161-357442a037e2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"46cf74eccc7f822a5ff8f59b21175901","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/5bc723ea-9ade-4af7-9161-357442a037e2","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240594,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5NH0.3NyPKTiJd-AmgC-AjFTrnbFJ3lot6a5LfS2Fil_p3D8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"46cf74eccc7f822a5ff8f59b21175901","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/5bc723ea-9ade-4af7-9161-357442a037e2","requestID":"46cf74eccc7f822a5ff8f59b21175901"} experiment-1 | {"level":"info","message":"GET /experiments/5bc723ea-9ade-4af7-9161-357442a037e2 200 12ms","method":"GET","requestID":"46cf74eccc7f822a5ff8f59b21175901","responseTime":12,"status":200,"url":"/experiments/5bc723ea-9ade-4af7-9161-357442a037e2"} gateway-1 | {"time_local":"18/Jun/2025:09:56:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/5bc723ea-9ade-4af7-9161-357442a037e2 HTTP/1.1","status": "200","body_bytes_sent":"1293","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"46cf74eccc7f822a5ff8f59b21175901"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5NH0.3NyPKTiJd-AmgC-AjFTrnbFJ3lot6a5LfS2Fil_p3D8","level":"info","message":"auth send jwt","requestID":"8859a7fb2e38546a3c9f432ceaa97a05"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8859a7fb2e38546a3c9f432ceaa97a05","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/5bc723ea-9ade-4af7-9161-357442a037e2","requestID":"8859a7fb2e38546a3c9f432ceaa97a05"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"84e03930-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5bc723ea-9ade-4af7-9161-357442a037e2"},"level":"info","message":"Attempting to finish experiment","requestID":"8859a7fb2e38546a3c9f432ceaa97a05"} device-1 | {"device":"3b147e6b-c73a-45ac-9d19-45d09ffd75e6","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1266,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:35Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1266,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.730984,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:35Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5bc723ea-9ade-4af7-9161-357442a037e2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8859a7fb2e38546a3c9f432ceaa97a05","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/5bc723ea-9ade-4af7-9161-357442a037e2","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240594,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5NH0.3NyPKTiJd-AmgC-AjFTrnbFJ3lot6a5LfS2Fil_p3D8"} device-1 | {"device":"3b147e6b-c73a-45ac-9d19-45d09ffd75e6","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"8859a7fb2e38546a3c9f432ceaa97a05","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1267,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:35Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1267,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.566566,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:35Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/26457c79-a90c-453a-a5fc-1b51060f570e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"84e03930-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/26457c79-a90c-453a-a5fc-1b51060f570e","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240594,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5NH0.3NyPKTiJd-AmgC-AjFTrnbFJ3lot6a5LfS2Fil_p3D8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"84e03930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"device":"3b147e6b-c73a-45ac-9d19-45d09ffd75e6","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/26457c79-a90c-453a-a5fc-1b51060f570e' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/26457c79-a90c-453a-a5fc-1b51060f570e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"26457c79-a90c-453a-a5fc-1b51060f570e","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e4406a936ff086000a9dc4d987530b60","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e4406a936ff086000a9dc4d987530b60","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8563e032738fb155bb598f8600703ec1","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/26457c79-a90c-453a-a5fc-1b51060f570e"}}},"level":"info","message":"received a callback","requestID":"e4406a936ff086000a9dc4d987530b60"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8563e032738fb155bb598f8600703ec1","responseTime":1,"status":200,"url":"/auth"} device-1 | {"device":"5c005e46-540e-495b-a0f0-388f08455464","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5c005e46-540e-495b-a0f0-388f08455464","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5c005e46-540e-495b-a0f0-388f08455464","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/26457c79-a90c-453a-a5fc-1b51060f570e"}}},"level":"info","message":"received a callback","requestID":"8563e032738fb155bb598f8600703ec1"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F26457c79-a90c-453a-a5fc-1b51060f570e': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F26457c79-a90c-453a-a5fc-1b51060f570e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"518515bb-e10e-4279-af78-6c230decf442","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240595.028509} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3a7c62da-b834-4134-af2d-924e4a84ff99","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240595.0286314} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"84e03930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"26457c79-a90c-453a-a5fc-1b51060f570e","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"84e03930-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/26457c79-a90c-453a-a5fc-1b51060f570e 204 36ms","method":"DELETE","requestID":"84e03930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":204,"url":"/peerconnections/26457c79-a90c-453a-a5fc-1b51060f570e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5bc723ea-9ade-4af7-9161-357442a037e2"},"level":"info","message":"Successfully finished experiment","requestID":"8859a7fb2e38546a3c9f432ceaa97a05"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"84e7b340-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1268,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:35Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b147e6b-c73a-45ac-9d19-45d09ffd75e6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"15b90459-8830-499d-b637-fb952275ebdb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240595.0645692} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1268,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.941411,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"84e7b340-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"84e7b340-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"84e7b340-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6/signaling 200 8ms","method":"POST","requestID":"84e7b340-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5bc723ea-9ade-4af7-9161-357442a037e2': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5bc723ea-9ade-4af7-9161-357442a037e2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"7360b5e3-c0a8-47f7-b6be-9b33d4fed120","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240595.0710757} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"84e960f0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d1be7f4b-a9c9-400e-a175-6effc190172c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240595.071219} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"8859a7fb2e38546a3c9f432ceaa97a05","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1269,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:35Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c005e46-540e-495b-a0f0-388f08455464","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"75b64f54-b3ee-4304-9a98-ca0788042b9a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240595.0759006} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1269,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.310761,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"84e960f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"84e960f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"84e960f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/5c005e46-540e-495b-a0f0-388f08455464/signaling 200 8ms","method":"POST","requestID":"84e960f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/5c005e46-540e-495b-a0f0-388f08455464/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/5bc723ea-9ade-4af7-9161-357442a037e2","requestID":"8859a7fb2e38546a3c9f432ceaa97a05"} gateway-1 | {"time_local":"18/Jun/2025:09:56:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/5bc723ea-9ade-4af7-9161-357442a037e2 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.125","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8859a7fb2e38546a3c9f432ceaa97a05"} experiment-1 | {"level":"info","message":"DELETE /experiments/5bc723ea-9ade-4af7-9161-357442a037e2 204 122ms","method":"DELETE","requestID":"8859a7fb2e38546a3c9f432ceaa97a05","responseTime":122,"status":204,"url":"/experiments/5bc723ea-9ade-4af7-9161-357442a037e2"} gateway-1 | {"time_local":"18/Jun/2025:09:56:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3405","request_time":"2.773","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"7a4f10224222401cf9fcb76ba3a3dfd9"} gateway-1 | {"time_local":"18/Jun/2025:09:56:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3407","request_time":"2.765","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"4deb8af99fd429a90a47d6bf7bd70f74"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 96ms","method":"POST","requestID":"e4406a936ff086000a9dc4d987530b60","responseTime":96,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.099","http_referrer":"","http_user_agent":"node-fetch","requestID":"e4406a936ff086000a9dc4d987530b60"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 95ms","method":"POST","requestID":"8563e032738fb155bb598f8600703ec1","responseTime":95,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.098","http_referrer":"","http_user_agent":"node-fetch","requestID":"8563e032738fb155bb598f8600703ec1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5NX0.lWKcqkHBk8xF7cqIjWJNGOYZhFtlOvoZ07TzHTBr6FU","level":"info","message":"auth send jwt","requestID":"864aece9b6bf6fafbd479a83aba3d98d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"864aece9b6bf6fafbd479a83aba3d98d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"864aece9b6bf6fafbd479a83aba3d98d"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/5c005e46-540e-495b-a0f0-388f08455464' closed"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1270,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:35Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1270,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.740725,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:35Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"864aece9b6bf6fafbd479a83aba3d98d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240595,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5NX0.lWKcqkHBk8xF7cqIjWJNGOYZhFtlOvoZ07TzHTBr6FU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"864aece9b6bf6fafbd479a83aba3d98d","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/3b147e6b-c73a-45ac-9d19-45d09ffd75e6' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"51f2dcb7-4685-45ce-8ebd-2c52adb8eab8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240595.170163} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"864aece9b6bf6fafbd479a83aba3d98d","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"828223ae-b055-4a2c-9ce5-4b45aa2c6ad6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240595.1745484} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"864aece9b6bf6fafbd479a83aba3d98d","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"87f51c2d-4a80-4469-9ba2-b0a9eff24d70","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240595.184389} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"46d707bd-ea47-4a6b-856c-de1e700a9bda","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240595.1846125} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"864aece9b6bf6fafbd479a83aba3d98d","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:35.184347838Z"}]},"request_id":"d8601e1e-ecee-494d-b891-9ba630209069","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240595.1895905} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"864aece9b6bf6fafbd479a83aba3d98d","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"864aece9b6bf6fafbd479a83aba3d98d"} gateway-1 | {"time_local":"18/Jun/2025:09:56:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.072","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"864aece9b6bf6fafbd479a83aba3d98d"} device-1 | {"level":"info","message":"POST /devices? 201 66ms","method":"POST","requestID":"864aece9b6bf6fafbd479a83aba3d98d","responseTime":66,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5NX0.lWKcqkHBk8xF7cqIjWJNGOYZhFtlOvoZ07TzHTBr6FU","level":"info","message":"auth send jwt","requestID":"f6362af048874a9464e215616ef0b071"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f6362af048874a9464e215616ef0b071","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"f6362af048874a9464e215616ef0b071"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1271,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:35Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1271,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.732086,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:35Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f6362af048874a9464e215616ef0b071","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240595,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5NX0.lWKcqkHBk8xF7cqIjWJNGOYZhFtlOvoZ07TzHTBr6FU"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"f6362af048874a9464e215616ef0b071","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e8294ff8-1c8d-489b-ac9c-1d4ab29a661f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240595.2358346} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"f6362af048874a9464e215616ef0b071","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cc26751d-c271-48f6-930a-932f90cf6e1d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240595.2657325} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"f6362af048874a9464e215616ef0b071","responseTime":28,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"28e9e557-4895-426e-9165-b39dbb84871b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240595.2776055} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2013e320-8cb1-4434-8371-32f0cea17705","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240595.2777956} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"f6362af048874a9464e215616ef0b071","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:35.277541186Z"}]},"request_id":"459211bd-6c5e-4a76-9740-1e134090c355","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240595.2828207} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"f6362af048874a9464e215616ef0b071","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"f6362af048874a9464e215616ef0b071"} gateway-1 | {"time_local":"18/Jun/2025:09:56:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.092","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f6362af048874a9464e215616ef0b071"} device-1 | {"level":"info","message":"POST /devices? 201 89ms","method":"POST","requestID":"f6362af048874a9464e215616ef0b071","responseTime":89,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4","level":"info","message":"auth send jwt","requestID":"82cdc3c17723d42ca2925286b1ab9d64"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"82cdc3c17723d42ca2925286b1ab9d64","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"82cdc3c17723d42ca2925286b1ab9d64"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1272,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1272,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.861375,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4","level":"info","message":"auth send jwt","requestID":"33fdbb3092390ecd4003448900d8953a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"33fdbb3092390ecd4003448900d8953a","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"82cdc3c17723d42ca2925286b1ab9d64","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240596,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"82cdc3c17723d42ca2925286b1ab9d64","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"33fdbb3092390ecd4003448900d8953a"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1273,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1273,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.716848,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"33fdbb3092390ecd4003448900d8953a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240596,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"33fdbb3092390ecd4003448900d8953a","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:35.277541186Z"}]},"request_id":"b8a81a37-d446-4bd7-bedb-3e05f8b3e6c3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.2485511} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"82cdc3c17723d42ca2925286b1ab9d64","responseTime":26,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:35.184347838Z"}]},"request_id":"1c7bb4f8-3c0a-4060-b2c2-958b38a284a0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.2748845} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"33fdbb3092390ecd4003448900d8953a","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"44f17411-cef3-4348-a823-0032a02acd0b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.276372} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"82cdc3c17723d42ca2925286b1ab9d64","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d33c44b5-842a-4fa8-a129-6096e9479b1b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.2795818} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"33fdbb3092390ecd4003448900d8953a","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:35.277541186Z"}]},"request_id":"d0219be9-469d-4dd1-a7a2-ab06b5d02721","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.2867613} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"82cdc3c17723d42ca2925286b1ab9d64","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"82cdc3c17723d42ca2925286b1ab9d64"} device-1 | {"level":"info","message":"PATCH /devices/9f7685b2-576c-4151-9eb9-fa91aa724986 200 50ms","method":"PATCH","requestID":"82cdc3c17723d42ca2925286b1ab9d64","responseTime":50,"status":200,"url":"/devices/9f7685b2-576c-4151-9eb9-fa91aa724986"} gateway-1 | {"time_local":"18/Jun/2025:09:56:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/9f7685b2-576c-4151-9eb9-fa91aa724986 HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.053","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"82cdc3c17723d42ca2925286b1ab9d64"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4","level":"info","message":"auth send jwt","requestID":"fa6b010afa2b29db0508440bc1aacd2d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fa6b010afa2b29db0508440bc1aacd2d","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"fa6b010afa2b29db0508440bc1aacd2d"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1274,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1274,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.645479,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"fa6b010afa2b29db0508440bc1aacd2d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240596,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"fa6b010afa2b29db0508440bc1aacd2d","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:35.184347838Z"}]},"request_id":"560e0d47-6ffe-4022-be8a-c7efba74350d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.296179} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"33fdbb3092390ecd4003448900d8953a","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"33fdbb3092390ecd4003448900d8953a"} gateway-1 | {"time_local":"18/Jun/2025:09:56:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8 HTTP/1.1","status": "200","body_bytes_sent":"1331","request_time":"0.084","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"33fdbb3092390ecd4003448900d8953a"} device-1 | {"level":"info","message":"PATCH /devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8 200 80ms","method":"PATCH","requestID":"33fdbb3092390ecd4003448900d8953a","responseTime":80,"status":200,"url":"/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4","level":"info","message":"auth send jwt","requestID":"5cda52834611c64c6e4a5c4091817e7a"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5cda52834611c64c6e4a5c4091817e7a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"5cda52834611c64c6e4a5c4091817e7a"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1275,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1275,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.749084,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5cda52834611c64c6e4a5c4091817e7a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240596,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5cda52834611c64c6e4a5c4091817e7a","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"fa6b010afa2b29db0508440bc1aacd2d"} device-1 | {"level":"info","message":"POST /devices/9f7685b2-576c-4151-9eb9-fa91aa724986/websocket 200 40ms","method":"POST","requestID":"fa6b010afa2b29db0508440bc1aacd2d","responseTime":40,"status":200,"url":"/devices/9f7685b2-576c-4151-9eb9-fa91aa724986/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:56:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/9f7685b2-576c-4151-9eb9-fa91aa724986/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.043","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"fa6b010afa2b29db0508440bc1aacd2d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"5cda52834611c64c6e4a5c4091817e7a"} device-1 | {"level":"info","message":"POST /devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8/websocket 200 14ms","method":"POST","requestID":"5cda52834611c64c6e4a5c4091817e7a","responseTime":14,"status":200,"url":"/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:56:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.017","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"5cda52834611c64c6e4a5c4091817e7a"} device-1 | {"level":"info","message":"device 'http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4","level":"info","message":"auth send jwt","requestID":"101cd4433e4369afc4cb47f8d90a6ff0"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"101cd4433e4369afc4cb47f8d90a6ff0","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"101cd4433e4369afc4cb47f8d90a6ff0"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1276,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1276,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.842056,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"101cd4433e4369afc4cb47f8d90a6ff0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240596,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"101cd4433e4369afc4cb47f8d90a6ff0","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:35.184347838Z"}]},"request_id":"614a4570-7a6b-4939-b76e-53819bf3c82f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.4176404} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"101cd4433e4369afc4cb47f8d90a6ff0","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"101cd4433e4369afc4cb47f8d90a6ff0"} gateway-1 | {"time_local":"18/Jun/2025:09:56:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"101cd4433e4369afc4cb47f8d90a6ff0"} device-1 | {"level":"info","message":"GET /devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8? 200 34ms","method":"GET","requestID":"101cd4433e4369afc4cb47f8d90a6ff0","responseTime":34,"status":200,"url":"/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4","level":"info","message":"auth send jwt","requestID":"ae933f913315360b54f0f45f358b9499"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ae933f913315360b54f0f45f358b9499","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ae933f913315360b54f0f45f358b9499"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1277,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1277,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.743349,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ae933f913315360b54f0f45f358b9499","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240596,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ae933f913315360b54f0f45f358b9499","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:35.277541186Z"}]},"request_id":"699e9d67-1fff-4f06-a3af-3858a642351e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.4310343} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"ae933f913315360b54f0f45f358b9499","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ae933f913315360b54f0f45f358b9499"} gateway-1 | {"time_local":"18/Jun/2025:09:56:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9f7685b2-576c-4151-9eb9-fa91aa724986? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ae933f913315360b54f0f45f358b9499"} device-1 | {"level":"info","message":"GET /devices/9f7685b2-576c-4151-9eb9-fa91aa724986? 200 9ms","method":"GET","requestID":"ae933f913315360b54f0f45f358b9499","responseTime":10,"status":200,"url":"/devices/9f7685b2-576c-4151-9eb9-fa91aa724986?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4","level":"info","message":"auth send jwt","requestID":"a429f7bfed7438a4c9124a43900831a6"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a429f7bfed7438a4c9124a43900831a6","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"a429f7bfed7438a4c9124a43900831a6"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1278,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1278,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":24.792907,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a429f7bfed7438a4c9124a43900831a6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240596,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"a429f7bfed7438a4c9124a43900831a6","responseTime":27,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e38888b5-2b46-4688-a299-164d38d46cf9"},"level":"info","message":"Attempting to run experiment","requestID":"a429f7bfed7438a4c9124a43900831a6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e38888b5-2b46-4688-a299-164d38d46cf9"},"level":"info","message":"Attempting to book experiment","requestID":"a429f7bfed7438a4c9124a43900831a6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e38888b5-2b46-4688-a299-164d38d46cf9"},"level":"info","message":"Successfully booked experiment","requestID":"a429f7bfed7438a4c9124a43900831a6"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"85c14a60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"85c17170-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1279,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1280,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1279,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.780632,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1280,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.60363,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"85c14a60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240596,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"85c14a60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":26,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"85c17170-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240596,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4"} authorization-1 | {"level":"info","message":"POST /authorize 200 24ms","method":"POST","requestID":"85c17170-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":24,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:35.184347838Z"}]},"request_id":"78bb5b66-2e98-4459-b8cd-5d8d29b2dbc5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.5163767} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"85c14a60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:35.277541186Z"}]},"request_id":"25b90c3f-5d3f-432d-b374-5e70d2d742c3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.5170226} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"85c17170-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"85c14a60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8? 200 34ms","method":"GET","requestID":"85c14a60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"85c17170-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/9f7685b2-576c-4151-9eb9-fa91aa724986? 200 34ms","method":"GET","requestID":"85c17170-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/9f7685b2-576c-4151-9eb9-fa91aa724986?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e38888b5-2b46-4688-a299-164d38d46cf9"},"level":"info","message":"Setting up experiment","requestID":"a429f7bfed7438a4c9124a43900831a6"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"a429f7bfed7438a4c9124a43900831a6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e38888b5-2b46-4688-a299-164d38d46cf9"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"a429f7bfed7438a4c9124a43900831a6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e38888b5-2b46-4688-a299-164d38d46cf9"},"level":"info","message":"Successfully locked booking for experiment","requestID":"a429f7bfed7438a4c9124a43900831a6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e38888b5-2b46-4688-a299-164d38d46cf9"},"level":"info","message":"Successfully set up experiment","requestID":"a429f7bfed7438a4c9124a43900831a6"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"85cdf490-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"85ce1ba0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e38888b5-2b46-4688-a299-164d38d46cf9"},"level":"info","message":"Successfully running experiment","requestID":"a429f7bfed7438a4c9124a43900831a6"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1281,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1282,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1281,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.91878,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1282,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.010787,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"85cdf490-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240596,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"85cdf490-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"85ce1ba0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240596,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"85ce1ba0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:35.184347838Z"}]},"request_id":"b3251eb0-4ca1-4102-852d-249861763f56","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.5781353} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"85cdf490-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:35.277541186Z"}]},"request_id":"fe047e0e-288a-43a1-9eb3-a5f84618be36","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.5786557} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"85ce1ba0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"85cdf490-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8? 200 13ms","method":"GET","requestID":"85cdf490-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"85ce1ba0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/9f7685b2-576c-4151-9eb9-fa91aa724986? 200 13ms","method":"GET","requestID":"85ce1ba0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/9f7685b2-576c-4151-9eb9-fa91aa724986?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"85d40f10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe38888b5-2b46-4688-a299-164d38d46cf9#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe38888b5-2b46-4688-a299-164d38d46cf9","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"3e9d5885-ce0c-4df7-94ba-c47eb93c9769","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.6109939} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0fdeab05-1639-4f99-964b-a0e5f376a233","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.6111028} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"a429f7bfed7438a4c9124a43900831a6","responseTime":40,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1283,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d96c85d6-1de6-41b1-a2ac-568151784019","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.6138608} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1283,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.657951,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"85d40f10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"85d40f10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"85d40f10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8/signaling 200 9ms","method":"POST","requestID":"85d40f10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/e38888b5-2b46-4688-a299-164d38d46cf9","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"a429f7bfed7438a4c9124a43900831a6"} gateway-1 | {"time_local":"18/Jun/2025:09:56:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1220","request_time":"0.183","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a429f7bfed7438a4c9124a43900831a6"} experiment-1 | {"level":"info","message":"POST /experiments? 201 180ms","method":"POST","requestID":"a429f7bfed7438a4c9124a43900831a6","responseTime":180,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"85d5bcc0-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4","level":"info","message":"auth send jwt","requestID":"f681acaf875b462a0e402086d9b60949"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f681acaf875b462a0e402086d9b60949","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"f681acaf875b462a0e402086d9b60949"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1284,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1285,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1285,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.701223,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f681acaf875b462a0e402086d9b60949","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240596,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f681acaf875b462a0e402086d9b60949","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7f9e50b5-c08d-49d4-aed0-e1960fd55a61","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.6252635} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1284,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.646081,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"85d5bcc0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"85d5bcc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:35.184347838Z"}]},"request_id":"94cb9906-3a47-40ae-b5a8-5efe08e99fbb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.6288898} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"f681acaf875b462a0e402086d9b60949","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"85d5bcc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/9f7685b2-576c-4151-9eb9-fa91aa724986/signaling 200 37ms","method":"POST","requestID":"85d5bcc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/9f7685b2-576c-4151-9eb9-fa91aa724986/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"f681acaf875b462a0e402086d9b60949"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e38888b5-2b46-4688-a299-164d38d46cf9"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"a429f7bfed7438a4c9124a43900831a6"} gateway-1 | {"time_local":"18/Jun/2025:09:56:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f681acaf875b462a0e402086d9b60949"} device-1 | {"level":"info","message":"GET /devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8? 200 36ms","method":"GET","requestID":"f681acaf875b462a0e402086d9b60949","responseTime":36,"status":200,"url":"/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8?"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"85dbb030-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"85dbb031-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1286,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1286,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.9104,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1287,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4","level":"info","message":"auth send jwt","requestID":"f24fb4bd3cef6e2f5a46c3a6066a6afb"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"85dbb030-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240596,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f24fb4bd3cef6e2f5a46c3a6066a6afb","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"85dbb030-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1287,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.700186,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"85dbb031-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240596,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"85dbb031-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"f24fb4bd3cef6e2f5a46c3a6066a6afb"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:35.184347838Z"}]},"request_id":"4ff9d107-3fd1-4637-bf72-e0cf63e8f20f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.6664004} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"85dbb030-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"85dbb030-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8? 200 10ms","method":"GET","requestID":"85dbb030-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:35.277541186Z"}]},"request_id":"2218e1ec-437c-427a-a77a-ea97afd3a3f1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.6687036} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"85dbb031-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1288,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1288,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.623936,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f24fb4bd3cef6e2f5a46c3a6066a6afb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240596,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f24fb4bd3cef6e2f5a46c3a6066a6afb","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"85dbb031-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/9f7685b2-576c-4151-9eb9-fa91aa724986? 200 14ms","method":"GET","requestID":"85dbb031-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/9f7685b2-576c-4151-9eb9-fa91aa724986?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e38888b5-2b46-4688-a299-164d38d46cf9"},"level":"info","message":"Building connection plan","requestID":"a429f7bfed7438a4c9124a43900831a6"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"3864c5be-aa5e-48fc-909b-c67f425b838f"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"d4e60c2f-b99b-46f5-9d59-03bcc6745788"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"401b20b7-799a-4a48-b412-afe991e4c403"}]},"level":"info","message":"Built pairwise service configurations","requestID":"a429f7bfed7438a4c9124a43900831a6"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:35.277541186Z"}]},"request_id":"a991a8b3-7aff-4da3-9105-3da4942f8824","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.6746836} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"a429f7bfed7438a4c9124a43900831a6"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"85de4840-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"f24fb4bd3cef6e2f5a46c3a6066a6afb","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1289,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"f24fb4bd3cef6e2f5a46c3a6066a6afb"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1289,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":25.028936,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} gateway-1 | {"time_local":"18/Jun/2025:09:56:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9f7685b2-576c-4151-9eb9-fa91aa724986? HTTP/1.1","status": "200","body_bytes_sent":"1330","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f24fb4bd3cef6e2f5a46c3a6066a6afb"} device-1 | {"level":"info","message":"GET /devices/9f7685b2-576c-4151-9eb9-fa91aa724986? 200 40ms","method":"GET","requestID":"f24fb4bd3cef6e2f5a46c3a6066a6afb","responseTime":40,"status":200,"url":"/devices/9f7685b2-576c-4151-9eb9-fa91aa724986?"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"85de4840-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240596,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5Nn0.hJZEPSznABg5EI016jc-yhvPInJSJMf37JtkdU85rp4"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"85de4840-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"60bb4b13-0b5c-4b1c-bd82-7e27b1f18989","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.7125597} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"810a0b9a-d15f-4e21-bbf8-a6ea02ea052b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.7127607} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"85de4840-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"85de4840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"85de4840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/9a5d48c5-a416-4742-9e88-6fb5b7226701'","requestID":"85de4840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/9a5d48c5-a416-4742-9e88-6fb5b7226701'","requestID":"85de4840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"85de4840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 46ms","method":"POST","requestID":"85de4840-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":46,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"85de4840-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e38888b5-2b46-4688-a299-164d38d46cf9"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"a429f7bfed7438a4c9124a43900831a6"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"85ec7910-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1290,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"800a0b2e-6710-4e72-b976-9cceb4527cd2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.773981} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1290,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.408328,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"85ec7910-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"85ec7910-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"85ec7910-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8/signaling 200 32ms","method":"POST","requestID":"85ec7910-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"85f1a930-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1291,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"05944d88-0804-4cb8-b083-488ff260c17a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240596.8072069} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1291,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.217125,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"85f1a930-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"85f1a930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"85f1a930-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/9f7685b2-576c-4151-9eb9-fa91aa724986/signaling 200 7ms","method":"POST","requestID":"85f1a930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/devices/9f7685b2-576c-4151-9eb9-fa91aa724986/signaling"} device-1 | {"device":"abca5316-d70c-46e1-ac3f-9d6d74718fa8","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"9a5d48c5-a416-4742-9e88-6fb5b7226701","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"9f7685b2-576c-4151-9eb9-fa91aa724986","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"9a5d48c5-a416-4742-9e88-6fb5b7226701","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"9f7685b2-576c-4151-9eb9-fa91aa724986","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"9f7685b2-576c-4151-9eb9-fa91aa724986","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"9f7685b2-576c-4151-9eb9-fa91aa724986","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"9f7685b2-576c-4151-9eb9-fa91aa724986","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9a5d48c5-a416-4742-9e88-6fb5b7226701' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9a5d48c5-a416-4742-9e88-6fb5b7226701","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a2aeb5984e6340a1d2e667bcc3b6dc40","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a2aeb5984e6340a1d2e667bcc3b6dc40","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/9a5d48c5-a416-4742-9e88-6fb5b7226701"}}},"level":"info","message":"received a callback","requestID":"a2aeb5984e6340a1d2e667bcc3b6dc40"} device-1 | {"device":"abca5316-d70c-46e1-ac3f-9d6d74718fa8","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"abca5316-d70c-46e1-ac3f-9d6d74718fa8","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"abca5316-d70c-46e1-ac3f-9d6d74718fa8","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"a2aeb5984e6340a1d2e667bcc3b6dc40","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"a2aeb5984e6340a1d2e667bcc3b6dc40"} device-1 | {"data":{"peerconnection":"9a5d48c5-a416-4742-9e88-6fb5b7226701","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"9f7685b2-576c-4151-9eb9-fa91aa724986","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"abca5316-d70c-46e1-ac3f-9d6d74718fa8","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"9f7685b2-576c-4151-9eb9-fa91aa724986","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"abca5316-d70c-46e1-ac3f-9d6d74718fa8","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"9a5d48c5-a416-4742-9e88-6fb5b7226701","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9a5d48c5-a416-4742-9e88-6fb5b7226701' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9a5d48c5-a416-4742-9e88-6fb5b7226701","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"840642851af6d497490b915ca1773c2c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"840642851af6d497490b915ca1773c2c","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/9a5d48c5-a416-4742-9e88-6fb5b7226701"}}},"level":"info","message":"received a callback","requestID":"840642851af6d497490b915ca1773c2c"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"8728f0b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1292,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:38Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9a5d48c5-a416-4742-9e88-6fb5b7226701","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"57d77926-2a68-4e8b-901d-2d3de817df46","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240598.8492568} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1292,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.984992,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9a5d48c5-a416-4742-9e88-6fb5b7226701","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8728f0b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/9a5d48c5-a416-4742-9e88-6fb5b7226701","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"8728f0b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"8728f0b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/9a5d48c5-a416-4742-9e88-6fb5b7226701 200 10ms","method":"GET","requestID":"8728f0b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/peerconnections/9a5d48c5-a416-4742-9e88-6fb5b7226701"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 30ms","method":"POST","requestID":"840642851af6d497490b915ca1773c2c","responseTime":30,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch","requestID":"840642851af6d497490b915ca1773c2c"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"872c7320-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1293,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:38Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"76da8b10-09a6-45e8-bc81-a7f553773b08","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240598.870888} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1293,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.385604,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:38Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"872c7320-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"872c7320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"872c7320-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/9f7685b2-576c-4151-9eb9-fa91aa724986/signaling 200 8ms","method":"POST","requestID":"872c7320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/9f7685b2-576c-4151-9eb9-fa91aa724986/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"872df9c0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1294,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:38Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0e25e89c-1c1d-4a0c-86cc-1f72beb5d4b3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240598.881035} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1294,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.19902,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:38Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"872df9c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"872df9c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"872df9c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8/signaling 200 8ms","method":"POST","requestID":"872df9c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5OH0.xsa2IX0Pnvm33HevFo2Z4EzvM8uk_gIrJQyhMQ2kpNU","level":"info","message":"auth send jwt","requestID":"d412ab1a63c3b9dab630c8863d214564"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d412ab1a63c3b9dab630c8863d214564","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/e38888b5-2b46-4688-a299-164d38d46cf9","requestID":"d412ab1a63c3b9dab630c8863d214564"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1295,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:38Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1295,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":25.112367,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e38888b5-2b46-4688-a299-164d38d46cf9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d412ab1a63c3b9dab630c8863d214564","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/e38888b5-2b46-4688-a299-164d38d46cf9","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240598,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5OH0.xsa2IX0Pnvm33HevFo2Z4EzvM8uk_gIrJQyhMQ2kpNU"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"d412ab1a63c3b9dab630c8863d214564","responseTime":28,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/e38888b5-2b46-4688-a299-164d38d46cf9","requestID":"d412ab1a63c3b9dab630c8863d214564"} experiment-1 | {"level":"info","message":"GET /experiments/e38888b5-2b46-4688-a299-164d38d46cf9 200 33ms","method":"GET","requestID":"d412ab1a63c3b9dab630c8863d214564","responseTime":33,"status":200,"url":"/experiments/e38888b5-2b46-4688-a299-164d38d46cf9"} gateway-1 | {"time_local":"18/Jun/2025:09:56:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/e38888b5-2b46-4688-a299-164d38d46cf9 HTTP/1.1","status": "200","body_bytes_sent":"1293","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d412ab1a63c3b9dab630c8863d214564"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5OH0.xsa2IX0Pnvm33HevFo2Z4EzvM8uk_gIrJQyhMQ2kpNU","level":"info","message":"auth send jwt","requestID":"ae3ff081753fbf383f8a5d4d1670fbf4"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ae3ff081753fbf383f8a5d4d1670fbf4","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/e38888b5-2b46-4688-a299-164d38d46cf9","requestID":"ae3ff081753fbf383f8a5d4d1670fbf4"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1296,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:38Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1296,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.820639,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:38Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e38888b5-2b46-4688-a299-164d38d46cf9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ae3ff081753fbf383f8a5d4d1670fbf4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/e38888b5-2b46-4688-a299-164d38d46cf9","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240598,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5OH0.xsa2IX0Pnvm33HevFo2Z4EzvM8uk_gIrJQyhMQ2kpNU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ae3ff081753fbf383f8a5d4d1670fbf4","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e38888b5-2b46-4688-a299-164d38d46cf9"},"level":"info","message":"Attempting to finish experiment","requestID":"ae3ff081753fbf383f8a5d4d1670fbf4"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"873db130-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1297,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:38Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1297,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.798509,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:38Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9a5d48c5-a416-4742-9e88-6fb5b7226701","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"873db130-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/9a5d48c5-a416-4742-9e88-6fb5b7226701","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240598,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5OH0.xsa2IX0Pnvm33HevFo2Z4EzvM8uk_gIrJQyhMQ2kpNU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"873db130-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"device":"abca5316-d70c-46e1-ac3f-9d6d74718fa8","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"abca5316-d70c-46e1-ac3f-9d6d74718fa8","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"abca5316-d70c-46e1-ac3f-9d6d74718fa8","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"9f7685b2-576c-4151-9eb9-fa91aa724986","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"9f7685b2-576c-4151-9eb9-fa91aa724986","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"9f7685b2-576c-4151-9eb9-fa91aa724986","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9a5d48c5-a416-4742-9e88-6fb5b7226701' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/9a5d48c5-a416-4742-9e88-6fb5b7226701' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9a5d48c5-a416-4742-9e88-6fb5b7226701","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9a5d48c5-a416-4742-9e88-6fb5b7226701': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9a5d48c5-a416-4742-9e88-6fb5b7226701","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"81943345-4330-4d7c-bae1-ebbf27e9b12e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240599.0164368} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"27761254-d856-4ee3-baa4-e39770238b6f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240599.0166676} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"4bf1621c815a941ca79913d83285274a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"4bf1621c815a941ca79913d83285274a","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"873db130-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"be90dd405f31b20023e71f589aa2ef2b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9a5d48c5-a416-4742-9e88-6fb5b7226701"}}},"level":"info","message":"received a callback","requestID":"4bf1621c815a941ca79913d83285274a"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"be90dd405f31b20023e71f589aa2ef2b","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9a5d48c5-a416-4742-9e88-6fb5b7226701"}}},"level":"info","message":"received a callback","requestID":"be90dd405f31b20023e71f589aa2ef2b"} device-1 | {"data":{"peerconnection":"9a5d48c5-a416-4742-9e88-6fb5b7226701","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"873db130-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/9a5d48c5-a416-4742-9e88-6fb5b7226701 204 80ms","method":"DELETE","requestID":"873db130-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":80,"status":204,"url":"/peerconnections/9a5d48c5-a416-4742-9e88-6fb5b7226701"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e38888b5-2b46-4688-a299-164d38d46cf9"},"level":"info","message":"Successfully finished experiment","requestID":"ae3ff081753fbf383f8a5d4d1670fbf4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"874be200-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1298,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:39Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9f7685b2-576c-4151-9eb9-fa91aa724986","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e31bbfb6-3ce5-4d49-85e0-185e703994fa","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240599.0761316} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1298,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.323459,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"874be200-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"874be200-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"874be200-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/9f7685b2-576c-4151-9eb9-fa91aa724986/signaling 200 8ms","method":"POST","requestID":"874be200-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/9f7685b2-576c-4151-9eb9-fa91aa724986/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"87511220-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe38888b5-2b46-4688-a299-164d38d46cf9': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe38888b5-2b46-4688-a299-164d38d46cf9","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"fa864af7-c0cf-4907-ba19-986f2c003da9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240599.1067212} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"525ec587-ad88-4580-b612-4c7b6add31d3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240599.107026} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"ae3ff081753fbf383f8a5d4d1670fbf4","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1299,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:39Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fabca5316-d70c-46e1-ac3f-9d6d74718fa8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d87e3c93-5cd0-4f60-b8ba-7380d45b7cde","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240599.1106288} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1299,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.259422,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"87511220-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"87511220-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"87511220-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8/signaling 200 8ms","method":"POST","requestID":"87511220-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/e38888b5-2b46-4688-a299-164d38d46cf9","requestID":"ae3ff081753fbf383f8a5d4d1670fbf4"} gateway-1 | {"time_local":"18/Jun/2025:09:56:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/e38888b5-2b46-4688-a299-164d38d46cf9 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.212","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ae3ff081753fbf383f8a5d4d1670fbf4"} experiment-1 | {"level":"info","message":"DELETE /experiments/e38888b5-2b46-4688-a299-164d38d46cf9 204 209ms","method":"DELETE","requestID":"ae3ff081753fbf383f8a5d4d1670fbf4","responseTime":209,"status":204,"url":"/experiments/e38888b5-2b46-4688-a299-164d38d46cf9"} gateway-1 | {"time_local":"18/Jun/2025:09:56:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3405","request_time":"2.867","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"3cf5f3740d247615ebd330e9310ed48f"} gateway-1 | {"time_local":"18/Jun/2025:09:56:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3407","request_time":"2.859","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"3057fc408cb7d4daf20586b790d374b4"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/abca5316-d70c-46e1-ac3f-9d6d74718fa8' closed"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5OX0.mJkVTHiB_VyMtES5N16t2NzhBlY758PdavWsMbvMZkE","level":"info","message":"auth send jwt","requestID":"cc4b8b4eac59c7cd2e71d6f1ffb32b12"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cc4b8b4eac59c7cd2e71d6f1ffb32b12","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 188ms","method":"POST","requestID":"4bf1621c815a941ca79913d83285274a","responseTime":188,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.191","http_referrer":"","http_user_agent":"node-fetch","requestID":"4bf1621c815a941ca79913d83285274a"} device-1 | {"level":"info","message":"postDevices called","requestID":"cc4b8b4eac59c7cd2e71d6f1ffb32b12"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 188ms","method":"POST","requestID":"be90dd405f31b20023e71f589aa2ef2b","responseTime":188,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.191","http_referrer":"","http_user_agent":"node-fetch","requestID":"be90dd405f31b20023e71f589aa2ef2b"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1300,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:39Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1300,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.816706,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"cc4b8b4eac59c7cd2e71d6f1ffb32b12","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240599,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5OX0.mJkVTHiB_VyMtES5N16t2NzhBlY758PdavWsMbvMZkE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"cc4b8b4eac59c7cd2e71d6f1ffb32b12","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/9f7685b2-576c-4151-9eb9-fa91aa724986' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4540098b-f663-405c-b1c3-ab39050bbdb5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240599.2235405} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"cc4b8b4eac59c7cd2e71d6f1ffb32b12","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"69b60137-9871-4737-8278-5bb5a080f610","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240599.2510803} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"cc4b8b4eac59c7cd2e71d6f1ffb32b12","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"8264b458-b5c3-4d06-93b2-b1617472c6c0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240599.2593904} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"04b0b019-87ac-4764-9a67-2544a5f05bfd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240599.2595232} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"cc4b8b4eac59c7cd2e71d6f1ffb32b12","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:39.259349058Z"}]},"request_id":"221c1771-bd69-4823-a5e1-b9ad7f5bfa60","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240599.2644916} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"cc4b8b4eac59c7cd2e71d6f1ffb32b12","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"cc4b8b4eac59c7cd2e71d6f1ffb32b12"} device-1 | {"level":"info","message":"POST /devices? 201 60ms","method":"POST","requestID":"cc4b8b4eac59c7cd2e71d6f1ffb32b12","responseTime":60,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.064","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cc4b8b4eac59c7cd2e71d6f1ffb32b12"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5OX0.mJkVTHiB_VyMtES5N16t2NzhBlY758PdavWsMbvMZkE","level":"info","message":"auth send jwt","requestID":"6ddc3e9eb62e25387dbb3e6878289bc6"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6ddc3e9eb62e25387dbb3e6878289bc6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"6ddc3e9eb62e25387dbb3e6878289bc6"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1301,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:39Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1301,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":20.91653,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6ddc3e9eb62e25387dbb3e6878289bc6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240599,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDU5OX0.mJkVTHiB_VyMtES5N16t2NzhBlY758PdavWsMbvMZkE"} authorization-1 | {"level":"info","message":"POST /authorize 200 24ms","method":"POST","requestID":"6ddc3e9eb62e25387dbb3e6878289bc6","responseTime":24,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2fb5f2c9-bac3-404a-9db6-97c4b19281a9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240599.3094652} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6ddc3e9eb62e25387dbb3e6878289bc6","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"31b8825a-2593-4322-8a96-d338815faace","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240599.3145118} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"6ddc3e9eb62e25387dbb3e6878289bc6","responseTime":5,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"3f9b4690-a38c-46fa-967f-61b817440587","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240599.3507786} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d8f31588-1262-4494-9564-d009ff5ef5a1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240599.3510282} authorization-1 | {"level":"info","message":"POST /relations/update 200 39ms","method":"POST","requestID":"6ddc3e9eb62e25387dbb3e6878289bc6","responseTime":39,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:39.350741694Z"}]},"request_id":"a662066c-23a6-4c85-908a-90bd6090ca89","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240599.3550377} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6ddc3e9eb62e25387dbb3e6878289bc6","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"6ddc3e9eb62e25387dbb3e6878289bc6"} gateway-1 | {"time_local":"18/Jun/2025:09:56:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.089","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6ddc3e9eb62e25387dbb3e6878289bc6"} device-1 | {"level":"info","message":"POST /devices? 201 86ms","method":"POST","requestID":"6ddc3e9eb62e25387dbb3e6878289bc6","responseTime":86,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"7fccc94a018a7725e4840d895b5a694a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7fccc94a018a7725e4840d895b5a694a","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"44a1ce4bebbfba643f6506c5ab47fd55","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"44a1ce4bebbfba643f6506c5ab47fd55","responseTime":0,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/af42b683-ea64-4326-96c3-478e653d3614/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7fccc94a018a7725e4840d895b5a694a"} device-1 | {"level":"info","message":"OPTIONS /devices/af42b683-ea64-4326-96c3-478e653d3614/websocket 200 1ms","method":"OPTIONS","requestID":"7fccc94a018a7725e4840d895b5a694a","responseTime":1,"status":200,"url":"/devices/af42b683-ea64-4326-96c3-478e653d3614/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:56:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.005","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"44a1ce4bebbfba643f6506c5ab47fd55"} device-1 | {"level":"info","message":"OPTIONS /devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4/websocket 200 1ms","method":"OPTIONS","requestID":"44a1ce4bebbfba643f6506c5ab47fd55","responseTime":1,"status":200,"url":"/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4","level":"info","message":"auth send jwt","requestID":"852597cee7fc45375e31412113e41746"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"852597cee7fc45375e31412113e41746","responseTime":6,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4","level":"info","message":"auth send jwt","requestID":"adf612d1f99f8448de1b200fe2dae8ee"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"852597cee7fc45375e31412113e41746"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"adf612d1f99f8448de1b200fe2dae8ee","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"adf612d1f99f8448de1b200fe2dae8ee"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1302,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1302,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.752372,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1303,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"852597cee7fc45375e31412113e41746","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240601,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"852597cee7fc45375e31412113e41746","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1303,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.810122,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"adf612d1f99f8448de1b200fe2dae8ee","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240601,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"adf612d1f99f8448de1b200fe2dae8ee","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"adf612d1f99f8448de1b200fe2dae8ee"} gateway-1 | {"time_local":"18/Jun/2025:09:56:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.025","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"adf612d1f99f8448de1b200fe2dae8ee"} device-1 | {"level":"info","message":"POST /devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4/websocket 200 17ms","method":"POST","requestID":"adf612d1f99f8448de1b200fe2dae8ee","responseTime":17,"status":200,"url":"/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"852597cee7fc45375e31412113e41746"} device-1 | {"level":"info","message":"POST /devices/af42b683-ea64-4326-96c3-478e653d3614/websocket 200 26ms","method":"POST","requestID":"852597cee7fc45375e31412113e41746","responseTime":26,"status":200,"url":"/devices/af42b683-ea64-4326-96c3-478e653d3614/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:56:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/af42b683-ea64-4326-96c3-478e653d3614/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.034","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"852597cee7fc45375e31412113e41746"} device-1 | {"level":"info","message":"device 'http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"6916fad92039a0971c56e24a2ce787d0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6916fad92039a0971c56e24a2ce787d0","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6916fad92039a0971c56e24a2ce787d0"} device-1 | {"level":"info","message":"OPTIONS /devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4? 200 1ms","method":"OPTIONS","requestID":"6916fad92039a0971c56e24a2ce787d0","responseTime":1,"status":200,"url":"/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4","level":"info","message":"auth send jwt","requestID":"681dd2f08bffd2d6251f10c9f7337faf"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"681dd2f08bffd2d6251f10c9f7337faf","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"681dd2f08bffd2d6251f10c9f7337faf"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b405d346bf386f69c5543544b0be4f88","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b405d346bf386f69c5543544b0be4f88","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/af42b683-ea64-4326-96c3-478e653d3614? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b405d346bf386f69c5543544b0be4f88"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1304,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:41Z"} device-1 | {"level":"info","message":"OPTIONS /devices/af42b683-ea64-4326-96c3-478e653d3614? 200 1ms","method":"OPTIONS","requestID":"b405d346bf386f69c5543544b0be4f88","responseTime":1,"status":200,"url":"/devices/af42b683-ea64-4326-96c3-478e653d3614?"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1304,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.446007,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"681dd2f08bffd2d6251f10c9f7337faf","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240601,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"681dd2f08bffd2d6251f10c9f7337faf","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4","level":"info","message":"auth send jwt","requestID":"3ee921b8ec338960b7d4c31803b09c83"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3ee921b8ec338960b7d4c31803b09c83","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"3ee921b8ec338960b7d4c31803b09c83"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:39.259349058Z"}]},"request_id":"70606d09-82ce-468a-be4d-1d66a021a8be","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240601.7069771} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"681dd2f08bffd2d6251f10c9f7337faf","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1305,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1305,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.965577,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3ee921b8ec338960b7d4c31803b09c83","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240601,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3ee921b8ec338960b7d4c31803b09c83","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eae0cfd1-ae93-43cf-890e-abc14f865bd9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240601.7117832} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"681dd2f08bffd2d6251f10c9f7337faf","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:39.350741694Z"}]},"request_id":"cf4a79bd-f597-4665-b5c3-dd19fe484343","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240601.7145998} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3ee921b8ec338960b7d4c31803b09c83","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d2b6bf4e-d1e5-4fd7-b412-dceee54048b0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240601.7186425} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"3ee921b8ec338960b7d4c31803b09c83","responseTime":2,"status":200,"url":"/relations/update"} gateway-1 | {"time_local":"18/Jun/2025:09:56:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.038","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"681dd2f08bffd2d6251f10c9f7337faf"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"681dd2f08bffd2d6251f10c9f7337faf"} device-1 | {"level":"info","message":"PATCH /devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4? 200 32ms","method":"PATCH","requestID":"681dd2f08bffd2d6251f10c9f7337faf","responseTime":32,"status":200,"url":"/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:39.259349058Z"}]},"request_id":"4f1792b8-8567-4e3c-989c-d215ea464399","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240601.7276576} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"681dd2f08bffd2d6251f10c9f7337faf","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:39.350741694Z"}]},"request_id":"03755d90-6066-4100-a0fc-7d5228b00be9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240601.7460933} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3ee921b8ec338960b7d4c31803b09c83","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"3ee921b8ec338960b7d4c31803b09c83"} gateway-1 | {"time_local":"18/Jun/2025:09:56:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/af42b683-ea64-4326-96c3-478e653d3614? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.045","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3ee921b8ec338960b7d4c31803b09c83"} device-1 | {"level":"info","message":"PATCH /devices/af42b683-ea64-4326-96c3-478e653d3614? 200 41ms","method":"PATCH","requestID":"3ee921b8ec338960b7d4c31803b09c83","responseTime":41,"status":200,"url":"/devices/af42b683-ea64-4326-96c3-478e653d3614?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4","level":"info","message":"auth send jwt","requestID":"2a78d14dc614bb1cc54329563620333a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2a78d14dc614bb1cc54329563620333a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2a78d14dc614bb1cc54329563620333a"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1306,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1306,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.650415,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2a78d14dc614bb1cc54329563620333a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240601,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2a78d14dc614bb1cc54329563620333a","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:39.259349058Z"}]},"request_id":"4e3e91c6-03e9-49cf-986c-3fa3bc5ab716","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240601.7617033} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2a78d14dc614bb1cc54329563620333a","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2a78d14dc614bb1cc54329563620333a"} gateway-1 | {"time_local":"18/Jun/2025:09:56:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2a78d14dc614bb1cc54329563620333a"} device-1 | {"level":"info","message":"GET /devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4? 200 9ms","method":"GET","requestID":"2a78d14dc614bb1cc54329563620333a","responseTime":9,"status":200,"url":"/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4","level":"info","message":"auth send jwt","requestID":"3103a4afbbe963efddce1e7910bb3954"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3103a4afbbe963efddce1e7910bb3954","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3103a4afbbe963efddce1e7910bb3954"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1307,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1307,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.673718,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3103a4afbbe963efddce1e7910bb3954","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240601,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3103a4afbbe963efddce1e7910bb3954","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:39.350741694Z"}]},"request_id":"892b5f59-6097-4fc4-8a36-61ca292cdf1e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240601.798548} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3103a4afbbe963efddce1e7910bb3954","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3103a4afbbe963efddce1e7910bb3954"} device-1 | {"level":"info","message":"GET /devices/af42b683-ea64-4326-96c3-478e653d3614? 200 33ms","method":"GET","requestID":"3103a4afbbe963efddce1e7910bb3954","responseTime":33,"status":200,"url":"/devices/af42b683-ea64-4326-96c3-478e653d3614?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/af42b683-ea64-4326-96c3-478e653d3614? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3103a4afbbe963efddce1e7910bb3954"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4","level":"info","message":"auth send jwt","requestID":"f5f6c2fec68c1122620829ff5020814a"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f5f6c2fec68c1122620829ff5020814a","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"f5f6c2fec68c1122620829ff5020814a"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1308,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1308,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.779431,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f5f6c2fec68c1122620829ff5020814a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240601,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f5f6c2fec68c1122620829ff5020814a","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a079345-0c17-433a-ad7c-49908fec1936"},"level":"info","message":"Attempting to run experiment","requestID":"f5f6c2fec68c1122620829ff5020814a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a079345-0c17-433a-ad7c-49908fec1936"},"level":"info","message":"Attempting to book experiment","requestID":"f5f6c2fec68c1122620829ff5020814a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a079345-0c17-433a-ad7c-49908fec1936"},"level":"info","message":"Successfully booked experiment","requestID":"f5f6c2fec68c1122620829ff5020814a"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"88f488f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"88f4b000-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1309,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1309,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.601999,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1310,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"88f488f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240601,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"88f488f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1310,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.546565,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"88f4b000-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240601,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"88f4b000-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:39.259349058Z"}]},"request_id":"a250bcc6-3f6a-4fa9-874e-512e9851337b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240601.8619673} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"88f488f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:39.350741694Z"}]},"request_id":"070e4705-1dbd-4b4f-929b-9f20d96e2fed","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240601.862446} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"88f4b000-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"88f488f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4? 200 35ms","method":"GET","requestID":"88f488f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"88f4b000-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/af42b683-ea64-4326-96c3-478e653d3614? 200 34ms","method":"GET","requestID":"88f4b000-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/af42b683-ea64-4326-96c3-478e653d3614?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a079345-0c17-433a-ad7c-49908fec1936"},"level":"info","message":"Setting up experiment","requestID":"f5f6c2fec68c1122620829ff5020814a"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"f5f6c2fec68c1122620829ff5020814a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a079345-0c17-433a-ad7c-49908fec1936"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"f5f6c2fec68c1122620829ff5020814a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a079345-0c17-433a-ad7c-49908fec1936"},"level":"info","message":"Successfully locked booking for experiment","requestID":"f5f6c2fec68c1122620829ff5020814a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a079345-0c17-433a-ad7c-49908fec1936"},"level":"info","message":"Successfully set up experiment","requestID":"f5f6c2fec68c1122620829ff5020814a"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"88fd3b80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"89010c10-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a079345-0c17-433a-ad7c-49908fec1936"},"level":"info","message":"Successfully running experiment","requestID":"f5f6c2fec68c1122620829ff5020814a"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1311,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1311,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.068634,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1312,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"88fd3b80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240601,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"88fd3b80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1312,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.637044,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"89010c10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240601,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"89010c10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:39.259349058Z"}]},"request_id":"d004045f-4f2b-4c7e-8b62-898f547600c0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240601.9453852} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"88fd3b80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:39.350741694Z"}]},"request_id":"2b23cc41-9e3f-4894-8d64-9063845105d3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240601.946103} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"89010c10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"88fd3b80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4? 200 37ms","method":"GET","requestID":"88fd3b80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"89010c10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/af42b683-ea64-4326-96c3-478e653d3614? 200 13ms","method":"GET","requestID":"89010c10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/af42b683-ea64-4326-96c3-478e653d3614?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"89035600-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6a079345-0c17-433a-ad7c-49908fec1936#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6a079345-0c17-433a-ad7c-49908fec1936","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"3887e8e9-3e4d-421a-b6b1-617377c3f6e1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240601.955238} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"39ef1e48-4ef8-42f7-8222-0b815645c5d3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240601.9553378} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","method":"POST","requestID":"f5f6c2fec68c1122620829ff5020814a","responseTime":17,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1313,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"be52ae25-ec48-4172-9747-8e2570af9666","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240601.957802} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1313,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.516877,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"89035600-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"89035600-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"89035600-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4/signaling 200 34ms","method":"POST","requestID":"89035600-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/6a079345-0c17-433a-ad7c-49908fec1936","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"f5f6c2fec68c1122620829ff5020814a"} gateway-1 | {"time_local":"18/Jun/2025:09:56:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1212","request_time":"0.185","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f5f6c2fec68c1122620829ff5020814a"} experiment-1 | {"level":"info","message":"POST /experiments? 201 181ms","method":"POST","requestID":"f5f6c2fec68c1122620829ff5020814a","responseTime":181,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8908fb50-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4","level":"info","message":"auth send jwt","requestID":"b5d0e9fb6d22251e06bc2a3060bf1000"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b5d0e9fb6d22251e06bc2a3060bf1000","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1314,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:41Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"b5d0e9fb6d22251e06bc2a3060bf1000"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ed40c748-8f5c-4634-a0c6-6b3a2f5c55df","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240601.993737} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1314,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.322716,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1315,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8908fb50-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8908fb50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1315,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.574581,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b5d0e9fb6d22251e06bc2a3060bf1000","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240601,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b5d0e9fb6d22251e06bc2a3060bf1000","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8908fb50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/af42b683-ea64-4326-96c3-478e653d3614/signaling 200 9ms","method":"POST","requestID":"8908fb50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/af42b683-ea64-4326-96c3-478e653d3614/signaling"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:39.259349058Z"}]},"request_id":"ef92bc8d-7f89-4b38-9a91-2013a7f0b892","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240601.999004} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a079345-0c17-433a-ad7c-49908fec1936"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"f5f6c2fec68c1122620829ff5020814a"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"b5d0e9fb6d22251e06bc2a3060bf1000","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"890ad010-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"890af720-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"b5d0e9fb6d22251e06bc2a3060bf1000"} gateway-1 | {"time_local":"18/Jun/2025:09:56:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b5d0e9fb6d22251e06bc2a3060bf1000"} device-1 | {"level":"info","message":"GET /devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4? 200 12ms","method":"GET","requestID":"b5d0e9fb6d22251e06bc2a3060bf1000","responseTime":12,"status":200,"url":"/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4?"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1316,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1316,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.906588,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1317,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"890ad010-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240601,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"890ad010-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1317,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.637551,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"890af720-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240601,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"890af720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMn0.QhaaOlzwPWm0H1szqnzhIluXIwbVzeuzwx14xlTRD0Y","level":"info","message":"auth send jwt","requestID":"e9a3149f9e5a82e62df7c4cbb1ad77f4"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e9a3149f9e5a82e62df7c4cbb1ad77f4","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"e9a3149f9e5a82e62df7c4cbb1ad77f4"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:39.259349058Z"}]},"request_id":"9dd3f1e7-ce65-47ed-ad47-a6b54c0a0218","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.0376444} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:39.350741694Z"}]},"request_id":"ee859ba9-409b-40f3-b479-0b784128d7b4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.0386527} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","method":"POST","requestID":"890ad010-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"890ad010-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"890af720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1318,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1318,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.204564,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:42Z"} device-1 | {"level":"info","message":"GET /devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4? 200 42ms","method":"GET","requestID":"890ad010-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":42,"status":200,"url":"/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4?"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e9a3149f9e5a82e62df7c4cbb1ad77f4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240602,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMn0.QhaaOlzwPWm0H1szqnzhIluXIwbVzeuzwx14xlTRD0Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"e9a3149f9e5a82e62df7c4cbb1ad77f4","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"890af720-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/af42b683-ea64-4326-96c3-478e653d3614? 200 45ms","method":"GET","requestID":"890af720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":45,"status":200,"url":"/devices/af42b683-ea64-4326-96c3-478e653d3614?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a079345-0c17-433a-ad7c-49908fec1936"},"level":"info","message":"Building connection plan","requestID":"f5f6c2fec68c1122620829ff5020814a"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"b10da87e-31cb-4ac1-93ff-41fbc6e34ba3"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"952d03ca-c94d-4874-9ef3-d42792625def"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"a0b9861e-ec45-4496-a547-98a6322e1635"}]},"level":"info","message":"Built pairwise service configurations","requestID":"f5f6c2fec68c1122620829ff5020814a"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"89124a20-4c2a-11f0-b702-8b8a85c3ad9a"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:39.350741694Z"}]},"request_id":"90af395c-8b19-46e0-8b6f-d7fd014a8c84","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.0510063} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"89124a20-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"POST /rooms 201 0ms","method":"POST","requestID":"89124a20-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":0,"status":201,"url":"/rooms"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"e9a3149f9e5a82e62df7c4cbb1ad77f4","responseTime":4,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/ee2d73d5-b55e-4d50-bfd8-36561e7750b2?id=5c8a180f-5a8d-447d-8d9f-fc503dddb0c5","ws://localhost/rooms/ee2d73d5-b55e-4d50-bfd8-36561e7750b2?id=b39b68cb-245c-47bf-a578-cd960c90b15e"]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"f5f6c2fec68c1122620829ff5020814a"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"8912e660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"e9a3149f9e5a82e62df7c4cbb1ad77f4"} gateway-1 | {"time_local":"18/Jun/2025:09:56:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/af42b683-ea64-4326-96c3-478e653d3614? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.050","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e9a3149f9e5a82e62df7c4cbb1ad77f4"} device-1 | {"level":"info","message":"GET /devices/af42b683-ea64-4326-96c3-478e653d3614? 200 22ms","method":"GET","requestID":"e9a3149f9e5a82e62df7c4cbb1ad77f4","responseTime":22,"status":200,"url":"/devices/af42b683-ea64-4326-96c3-478e653d3614?"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1319,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1319,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.618658,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8912e660-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240601,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMX0.FmuqNUgGUKuZw9DvCD9VnxT1BtuEQwkmpQAsqOL-Tm4"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"8912e660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"fa11a3b4-2d4c-440f-8b50-f56a874e642d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.0877347} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f11fffd1-090e-4786-8e37-e5e23a1d436e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.087956} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"8912e660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"8912e660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"8912e660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c'","requestID":"8912e660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c'","requestID":"8912e660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"8912e660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 46ms","method":"POST","requestID":"8912e660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":46,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"8912e660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"241a46f8-0adc-4d27-b635-bf569a819e3c","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"891f4270-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"b39b68cb-245c-47bf-a578-cd960c90b15e\" in room \"http://localhost/rooms/ee2d73d5-b55e-4d50-bfd8-36561e7750b2\"","requestID":"891f4270-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"891f4270-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"891f6980-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"5c8a180f-5a8d-447d-8d9f-fc503dddb0c5\" in room \"http://localhost/rooms/ee2d73d5-b55e-4d50-bfd8-36561e7750b2\"","requestID":"891f6980-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"891f6980-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"55a53b10a86bfaaa120d4f5c9984bdf2","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"55a53b10a86bfaaa120d4f5c9984bdf2","responseTime":1,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"b39b68cb-245c-47bf-a578-cd960c90b15e\" in room \"http://localhost/rooms/ee2d73d5-b55e-4d50-bfd8-36561e7750b2\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"b39b68cb-245c-47bf-a578-cd960c90b15e\" in room \"http://localhost/rooms/ee2d73d5-b55e-4d50-bfd8-36561e7750b2\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"b39b68cb-245c-47bf-a578-cd960c90b15e\" in room \"http://localhost/rooms/ee2d73d5-b55e-4d50-bfd8-36561e7750b2\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"b39b68cb-245c-47bf-a578-cd960c90b15e\" in room \"http://localhost/rooms/ee2d73d5-b55e-4d50-bfd8-36561e7750b2\""} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c"}}},"level":"info","message":"received a callback","requestID":"55a53b10a86bfaaa120d4f5c9984bdf2"} device-1 | {"data":{"peerconnection":"241a46f8-0adc-4d27-b635-bf569a819e3c","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"55a53b10a86bfaaa120d4f5c9984bdf2","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"55a53b10a86bfaaa120d4f5c9984bdf2"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a079345-0c17-433a-ad7c-49908fec1936"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"f5f6c2fec68c1122620829ff5020814a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"89266e60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"data":{"peerconnection":"241a46f8-0adc-4d27-b635-bf569a819e3c","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1320,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ce6ea164-7366-4fc9-bfe1-bad321276e2f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.1868966} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1320,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.4498,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"89266e60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"89266e60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"241a46f8-0adc-4d27-b635-bf569a819e3c","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"89266e60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4/signaling 200 13ms","method":"POST","requestID":"89266e60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4/signaling"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a3b1502a7b23cf2c18ddc989033fe9e9","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a3b1502a7b23cf2c18ddc989033fe9e9","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8928b850-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c"}}},"level":"info","message":"received a callback","requestID":"a3b1502a7b23cf2c18ddc989033fe9e9"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1321,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bec3fc94-8b94-4437-9194-51983f1adfa0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.225644} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1321,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.568046,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:42Z"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"892d2520-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8928b850-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"8928b850-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1322,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:42Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8928b850-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/af42b683-ea64-4326-96c3-478e653d3614/signaling 200 33ms","method":"POST","requestID":"8928b850-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/af42b683-ea64-4326-96c3-478e653d3614/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F241a46f8-0adc-4d27-b635-bf569a819e3c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e70e8924-9c02-48b0-84e0-1440e6fd14c8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.2310307} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1322,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.53502,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"892d2520-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"892d2520-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"892d2520-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c 200 8ms","method":"GET","requestID":"892d2520-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMn0.QhaaOlzwPWm0H1szqnzhIluXIwbVzeuzwx14xlTRD0Y","level":"info","message":"auth send jwt","requestID":"31016dd857d90e6f0b8a9d50410c5cee"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"31016dd857d90e6f0b8a9d50410c5cee","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/6a079345-0c17-433a-ad7c-49908fec1936","requestID":"31016dd857d90e6f0b8a9d50410c5cee"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 49ms","method":"POST","requestID":"a3b1502a7b23cf2c18ddc989033fe9e9","responseTime":49,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch","requestID":"a3b1502a7b23cf2c18ddc989033fe9e9"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1323,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:42Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"89305970-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1323,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.712411,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6a079345-0c17-433a-ad7c-49908fec1936","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"31016dd857d90e6f0b8a9d50410c5cee","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/6a079345-0c17-433a-ad7c-49908fec1936","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240602,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMn0.QhaaOlzwPWm0H1szqnzhIluXIwbVzeuzwx14xlTRD0Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"31016dd857d90e6f0b8a9d50410c5cee","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1324,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cb9313f1-8f17-411d-bdf1-3061c7a11a62","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.2764711} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1324,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.511818,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"89305970-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/6a079345-0c17-433a-ad7c-49908fec1936","requestID":"31016dd857d90e6f0b8a9d50410c5cee"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"89305970-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:56:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/6a079345-0c17-433a-ad7c-49908fec1936 HTTP/1.1","status": "200","body_bytes_sent":"1285","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"31016dd857d90e6f0b8a9d50410c5cee"} experiment-1 | {"level":"info","message":"GET /experiments/6a079345-0c17-433a-ad7c-49908fec1936 200 35ms","method":"GET","requestID":"31016dd857d90e6f0b8a9d50410c5cee","responseTime":35,"status":200,"url":"/experiments/6a079345-0c17-433a-ad7c-49908fec1936"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"89305970-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4/signaling 200 33ms","method":"POST","requestID":"89305970-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMn0.QhaaOlzwPWm0H1szqnzhIluXIwbVzeuzwx14xlTRD0Y","level":"info","message":"auth send jwt","requestID":"08cbc69a6588733db195948e6b52399f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"08cbc69a6588733db195948e6b52399f","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/6a079345-0c17-433a-ad7c-49908fec1936","requestID":"08cbc69a6588733db195948e6b52399f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8935d7b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1325,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1326,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1326,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.666607,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6a079345-0c17-433a-ad7c-49908fec1936","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"08cbc69a6588733db195948e6b52399f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/6a079345-0c17-433a-ad7c-49908fec1936","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240602,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMn0.QhaaOlzwPWm0H1szqnzhIluXIwbVzeuzwx14xlTRD0Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"08cbc69a6588733db195948e6b52399f","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ee401f5d-73c2-4ed0-b5f5-a3d3ebc4a8cf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.287859} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1325,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.294633,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8935d7b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8935d7b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8935d7b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/af42b683-ea64-4326-96c3-478e653d3614/signaling 200 9ms","method":"POST","requestID":"8935d7b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/af42b683-ea64-4326-96c3-478e653d3614/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a079345-0c17-433a-ad7c-49908fec1936"},"level":"info","message":"Attempting to finish experiment","requestID":"08cbc69a6588733db195948e6b52399f"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"89378560-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1327,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1327,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":25.824003,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"89378560-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240602,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMn0.QhaaOlzwPWm0H1szqnzhIluXIwbVzeuzwx14xlTRD0Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"89378560-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c","device":"af42b683-ea64-4326-96c3-478e653d3614","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c","device":"63a545c2-eec7-4b5c-a307-2c4533dd67c4","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} gateway-1 | {"time_local":"18/Jun/2025:09:56:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/ee2d73d5-b55e-4d50-bfd8-36561e7750b2?id=b39b68cb-245c-47bf-a578-cd960c90b15e HTTP/1.1","status": "101","body_bytes_sent":"438","request_time":"0.198","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8559c9eb52b4258bd48ef284aa822a3d"} gateway-1 | {"time_local":"18/Jun/2025:09:56:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/ee2d73d5-b55e-4d50-bfd8-36561e7750b2?id=5c8a180f-5a8d-447d-8d9f-fc503dddb0c5 HTTP/1.1","status": "101","body_bytes_sent":"2","request_time":"0.198","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0bf271316f14178fc59afaca2c18ab16"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"241a46f8-0adc-4d27-b635-bf569a819e3c","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"b39b68cb-245c-47bf-a578-cd960c90b15e\" in room \"http://localhost/rooms/ee2d73d5-b55e-4d50-bfd8-36561e7750b2\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"b39b68cb-245c-47bf-a578-cd960c90b15e\" from room \"http://localhost/rooms/ee2d73d5-b55e-4d50-bfd8-36561e7750b2\", code: 1005, reason: "} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"5c8a180f-5a8d-447d-8d9f-fc503dddb0c5\" in room \"http://localhost/rooms/ee2d73d5-b55e-4d50-bfd8-36561e7750b2\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"5c8a180f-5a8d-447d-8d9f-fc503dddb0c5\" from room \"http://localhost/rooms/ee2d73d5-b55e-4d50-bfd8-36561e7750b2\", code: 1005, reason: "} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"83c750352dc87f5dbd559e3204e613d3","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"83c750352dc87f5dbd559e3204e613d3","responseTime":0,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e56fa78589b43084e2dc475ebd689eb6","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F241a46f8-0adc-4d27-b635-bf569a819e3c': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F241a46f8-0adc-4d27-b635-bf569a819e3c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"046387d8-59bd-4177-810f-1ccd9020b072","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.3365245} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f0423393-116f-4bac-9b52-5556b5826583","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.3368068} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e56fa78589b43084e2dc475ebd689eb6","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c"}}},"level":"info","message":"received a callback","requestID":"83c750352dc87f5dbd559e3204e613d3"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c"}}},"level":"info","message":"received a callback","requestID":"e56fa78589b43084e2dc475ebd689eb6"} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","method":"POST","requestID":"89378560-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"241a46f8-0adc-4d27-b635-bf569a819e3c","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"89378560-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c 204 83ms","method":"DELETE","requestID":"89378560-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":83,"status":204,"url":"/peerconnections/241a46f8-0adc-4d27-b635-bf569a819e3c"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614'"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a079345-0c17-433a-ad7c-49908fec1936"},"level":"info","message":"Successfully finished experiment","requestID":"08cbc69a6588733db195948e6b52399f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"89465270-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1328,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F63a545c2-eec7-4b5c-a307-2c4533dd67c4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4d972f28-6e8a-4d0e-8213-80539320afaf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.4196744} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1328,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.369265,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"89465270-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"89465270-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"89465270-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4/signaling 200 34ms","method":"POST","requestID":"89465270-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6a079345-0c17-433a-ad7c-49908fec1936': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6a079345-0c17-433a-ad7c-49908fec1936","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"c76ac687-5d47-432a-abf8-f7fd4248aa20","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.4265437} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6172338e-528a-4b09-b893-fa0a12ace62b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.4268043} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"894bf7c0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"08cbc69a6588733db195948e6b52399f","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1329,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf42b683-ea64-4326-96c3-478e653d3614","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"974b7d4d-7826-4209-a5de-746dc6e985d7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.4318974} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1329,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.388902,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"894bf7c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"894bf7c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"894bf7c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/af42b683-ea64-4326-96c3-478e653d3614/signaling 200 7ms","method":"POST","requestID":"894bf7c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/devices/af42b683-ea64-4326-96c3-478e653d3614/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/6a079345-0c17-433a-ad7c-49908fec1936","requestID":"08cbc69a6588733db195948e6b52399f"} gateway-1 | {"time_local":"18/Jun/2025:09:56:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/6a079345-0c17-433a-ad7c-49908fec1936 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.251","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"08cbc69a6588733db195948e6b52399f"} experiment-1 | {"level":"info","message":"DELETE /experiments/6a079345-0c17-433a-ad7c-49908fec1936 204 247ms","method":"DELETE","requestID":"08cbc69a6588733db195948e6b52399f","responseTime":247,"status":204,"url":"/experiments/6a079345-0c17-433a-ad7c-49908fec1936"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 196ms","method":"POST","requestID":"83c750352dc87f5dbd559e3204e613d3","responseTime":196,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.198","http_referrer":"","http_user_agent":"node-fetch","requestID":"83c750352dc87f5dbd559e3204e613d3"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 195ms","method":"POST","requestID":"e56fa78589b43084e2dc475ebd689eb6","responseTime":195,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.199","http_referrer":"","http_user_agent":"node-fetch","requestID":"e56fa78589b43084e2dc475ebd689eb6"} gateway-1 | {"time_local":"18/Jun/2025:09:56:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1646","request_time":"0.889","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"cd8d8d5e1e57c0534600540fd5fa746e"} gateway-1 | {"time_local":"18/Jun/2025:09:56:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1643","request_time":"0.885","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c3f2a2bb2845e25640915e873d2abcb7"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/af42b683-ea64-4326-96c3-478e653d3614' closed"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMn0.QhaaOlzwPWm0H1szqnzhIluXIwbVzeuzwx14xlTRD0Y","level":"info","message":"auth send jwt","requestID":"584394be8d05c627bf3b43a20ebc7cb0"} authentication-1 | {"level":"info","message":"GET /auth 200 37ms","method":"GET","requestID":"584394be8d05c627bf3b43a20ebc7cb0","responseTime":37,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"584394be8d05c627bf3b43a20ebc7cb0"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1330,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1330,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.755748,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"584394be8d05c627bf3b43a20ebc7cb0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240602,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMn0.QhaaOlzwPWm0H1szqnzhIluXIwbVzeuzwx14xlTRD0Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"584394be8d05c627bf3b43a20ebc7cb0","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/63a545c2-eec7-4b5c-a307-2c4533dd67c4' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d2d89945-88f6-4176-b60a-58329e7943a5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.5854418} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"584394be8d05c627bf3b43a20ebc7cb0","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"67130865-a0d7-4bac-90fa-305910c0287a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.5885456} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"584394be8d05c627bf3b43a20ebc7cb0","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"a7ac0b0b-98c4-4588-a191-d1bfc48d0d95","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.59814} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0744d26c-45e5-426f-968f-4921bc387ba6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.5982623} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"584394be8d05c627bf3b43a20ebc7cb0","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:42.598109224Z"}]},"request_id":"a352dfd8-f26c-4420-952e-a1222e245f31","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.6014452} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"584394be8d05c627bf3b43a20ebc7cb0","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"584394be8d05c627bf3b43a20ebc7cb0"} device-1 | {"level":"info","message":"POST /devices? 201 33ms","method":"POST","requestID":"584394be8d05c627bf3b43a20ebc7cb0","responseTime":33,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.072","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"584394be8d05c627bf3b43a20ebc7cb0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMn0.QhaaOlzwPWm0H1szqnzhIluXIwbVzeuzwx14xlTRD0Y","level":"info","message":"auth send jwt","requestID":"1fd2e4720e10e847ad8a10f585fe7a28"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1fd2e4720e10e847ad8a10f585fe7a28","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"1fd2e4720e10e847ad8a10f585fe7a28"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1331,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1331,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.682988,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"1fd2e4720e10e847ad8a10f585fe7a28","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240602,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwMn0.QhaaOlzwPWm0H1szqnzhIluXIwbVzeuzwx14xlTRD0Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1fd2e4720e10e847ad8a10f585fe7a28","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"067c542f-91fc-40ef-a057-1fa972337103","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.6205983} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"1fd2e4720e10e847ad8a10f585fe7a28","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4fef0826-9f67-4baf-9eba-6774cf9ce2c4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.623999} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"1fd2e4720e10e847ad8a10f585fe7a28","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"7cd79524-bd46-4f31-b961-44acd46b438e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.6353595} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a02b6e80-d403-4904-ae2a-df197275d07c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.6355557} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"1fd2e4720e10e847ad8a10f585fe7a28","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:42.635329772Z"}]},"request_id":"dd9c062c-3ec4-452c-a55e-ae9c5a96e22e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240602.6385965} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"1fd2e4720e10e847ad8a10f585fe7a28","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"1fd2e4720e10e847ad8a10f585fe7a28"} gateway-1 | {"time_local":"18/Jun/2025:09:56:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1fd2e4720e10e847ad8a10f585fe7a28"} device-1 | {"level":"info","message":"POST /devices? 201 33ms","method":"POST","requestID":"1fd2e4720e10e847ad8a10f585fe7a28","responseTime":33,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"94c6702a16539f08f9e953dd01430b25","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"94c6702a16539f08f9e953dd01430b25","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f00fc0b7-519f-4e16-aa33-bdfaef016415/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"94c6702a16539f08f9e953dd01430b25"} device-1 | {"level":"info","message":"OPTIONS /devices/f00fc0b7-519f-4e16-aa33-bdfaef016415/websocket 200 1ms","method":"OPTIONS","requestID":"94c6702a16539f08f9e953dd01430b25","responseTime":1,"status":200,"url":"/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNH0.J7HxrTG5IbQW0vMnzq--HVwYA7cWtENRL_G5MZbNW1M","level":"info","message":"auth send jwt","requestID":"eafa5afd10db3a1fa9c5b9fee55b88db"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"eafa5afd10db3a1fa9c5b9fee55b88db","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"eafa5afd10db3a1fa9c5b9fee55b88db"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1332,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:44Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1332,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.154278,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:44Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"eafa5afd10db3a1fa9c5b9fee55b88db","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240604,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNH0.J7HxrTG5IbQW0vMnzq--HVwYA7cWtENRL_G5MZbNW1M"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"eafa5afd10db3a1fa9c5b9fee55b88db","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"eafa5afd10db3a1fa9c5b9fee55b88db"} gateway-1 | {"time_local":"18/Jun/2025:09:56:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f00fc0b7-519f-4e16-aa33-bdfaef016415/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.027","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"eafa5afd10db3a1fa9c5b9fee55b88db"} device-1 | {"level":"info","message":"POST /devices/f00fc0b7-519f-4e16-aa33-bdfaef016415/websocket 200 21ms","method":"POST","requestID":"eafa5afd10db3a1fa9c5b9fee55b88db","responseTime":21,"status":200,"url":"/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a82384a976760beeabfa78d39978c92f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a82384a976760beeabfa78d39978c92f","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b6bead82-58b8-48b1-b4ae-76c6e2551722/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a82384a976760beeabfa78d39978c92f"} device-1 | {"level":"info","message":"OPTIONS /devices/b6bead82-58b8-48b1-b4ae-76c6e2551722/websocket 200 1ms","method":"OPTIONS","requestID":"a82384a976760beeabfa78d39978c92f","responseTime":1,"status":200,"url":"/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4","level":"info","message":"auth send jwt","requestID":"70619aa0988cd15bfd10f36917af8776"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"70619aa0988cd15bfd10f36917af8776","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"70619aa0988cd15bfd10f36917af8776"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1333,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1333,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.69897,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"70619aa0988cd15bfd10f36917af8776","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"70619aa0988cd15bfd10f36917af8776","responseTime":2,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"429dce0d15237ff1fa13cc894af52855","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"429dce0d15237ff1fa13cc894af52855","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f00fc0b7-519f-4e16-aa33-bdfaef016415? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"429dce0d15237ff1fa13cc894af52855"} device-1 | {"level":"info","message":"OPTIONS /devices/f00fc0b7-519f-4e16-aa33-bdfaef016415? 200 1ms","method":"OPTIONS","requestID":"429dce0d15237ff1fa13cc894af52855","responseTime":1,"status":200,"url":"/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4","level":"info","message":"auth send jwt","requestID":"933b786b46ced19bf83668e18287c27a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"933b786b46ced19bf83668e18287c27a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"70619aa0988cd15bfd10f36917af8776"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b6bead82-58b8-48b1-b4ae-76c6e2551722/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.017","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"70619aa0988cd15bfd10f36917af8776"} device-1 | {"level":"info","message":"POST /devices/b6bead82-58b8-48b1-b4ae-76c6e2551722/websocket 200 13ms","method":"POST","requestID":"70619aa0988cd15bfd10f36917af8776","responseTime":13,"status":200,"url":"/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722/websocket"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"933b786b46ced19bf83668e18287c27a"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1334,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1334,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.683708,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"933b786b46ced19bf83668e18287c27a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"933b786b46ced19bf83668e18287c27a","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:42.598109224Z"}]},"request_id":"fb8109d5-eed6-4bff-abd1-e0fa1a74efb7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.0333042} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"933b786b46ced19bf83668e18287c27a","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c6dc444c-2682-4730-ab81-4734465d3ef3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.037743} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"933b786b46ced19bf83668e18287c27a","responseTime":2,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d69a3242d7ac61dfa9e48f311fdc0756","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d69a3242d7ac61dfa9e48f311fdc0756","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b6bead82-58b8-48b1-b4ae-76c6e2551722? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d69a3242d7ac61dfa9e48f311fdc0756"} device-1 | {"level":"info","message":"OPTIONS /devices/b6bead82-58b8-48b1-b4ae-76c6e2551722? 200 0ms","method":"OPTIONS","requestID":"d69a3242d7ac61dfa9e48f311fdc0756","responseTime":0,"status":200,"url":"/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:42.598109224Z"}]},"request_id":"c3f43203-8e45-480e-aabc-a480798389b4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.0524266} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"933b786b46ced19bf83668e18287c27a","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"933b786b46ced19bf83668e18287c27a"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/f00fc0b7-519f-4e16-aa33-bdfaef016415? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.036","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"933b786b46ced19bf83668e18287c27a"} device-1 | {"level":"info","message":"PATCH /devices/f00fc0b7-519f-4e16-aa33-bdfaef016415? 200 32ms","method":"PATCH","requestID":"933b786b46ced19bf83668e18287c27a","responseTime":32,"status":200,"url":"/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4","level":"info","message":"auth send jwt","requestID":"8db2412fcd3a8c391f7c6362b155d63a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8db2412fcd3a8c391f7c6362b155d63a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"8db2412fcd3a8c391f7c6362b155d63a"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1335,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1335,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.694159,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8db2412fcd3a8c391f7c6362b155d63a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8db2412fcd3a8c391f7c6362b155d63a","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:42.635329772Z"}]},"request_id":"59112fa8-8b82-4fee-87e2-4894fbeb2407","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.0659924} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"8db2412fcd3a8c391f7c6362b155d63a","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2322db16-7b90-4862-aa6a-c92464435ac5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.069959} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"8db2412fcd3a8c391f7c6362b155d63a","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:42.635329772Z"}]},"request_id":"3042d191-ef24-42b9-8934-9cfdedff315d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.0797963} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8db2412fcd3a8c391f7c6362b155d63a","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"8db2412fcd3a8c391f7c6362b155d63a"} device-1 | {"level":"info","message":"PATCH /devices/b6bead82-58b8-48b1-b4ae-76c6e2551722? 200 25ms","method":"PATCH","requestID":"8db2412fcd3a8c391f7c6362b155d63a","responseTime":25,"status":200,"url":"/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/b6bead82-58b8-48b1-b4ae-76c6e2551722? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.028","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8db2412fcd3a8c391f7c6362b155d63a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4","level":"info","message":"auth send jwt","requestID":"d54d3e7db12b955fa40cbe60912c6aab"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d54d3e7db12b955fa40cbe60912c6aab","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d54d3e7db12b955fa40cbe60912c6aab"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1336,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1336,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.594671,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d54d3e7db12b955fa40cbe60912c6aab","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"d54d3e7db12b955fa40cbe60912c6aab","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:42.598109224Z"}]},"request_id":"9b418db7-e930-4817-a0d8-32159f5b2511","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.0953505} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d54d3e7db12b955fa40cbe60912c6aab","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d54d3e7db12b955fa40cbe60912c6aab"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f00fc0b7-519f-4e16-aa33-bdfaef016415? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d54d3e7db12b955fa40cbe60912c6aab"} device-1 | {"level":"info","message":"GET /devices/f00fc0b7-519f-4e16-aa33-bdfaef016415? 200 13ms","method":"GET","requestID":"d54d3e7db12b955fa40cbe60912c6aab","responseTime":13,"status":200,"url":"/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4","level":"info","message":"auth send jwt","requestID":"a2a19ad8b904828d85ca0b4decc18856"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a2a19ad8b904828d85ca0b4decc18856","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a2a19ad8b904828d85ca0b4decc18856"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1337,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1337,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.629325,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"a2a19ad8b904828d85ca0b4decc18856","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a2a19ad8b904828d85ca0b4decc18856","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:42.635329772Z"}]},"request_id":"566aaded-a32b-4a71-9387-d18adae32230","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.1117556} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a2a19ad8b904828d85ca0b4decc18856","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"a2a19ad8b904828d85ca0b4decc18856"} device-1 | {"level":"info","message":"GET /devices/b6bead82-58b8-48b1-b4ae-76c6e2551722? 200 8ms","method":"GET","requestID":"a2a19ad8b904828d85ca0b4decc18856","responseTime":8,"status":200,"url":"/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b6bead82-58b8-48b1-b4ae-76c6e2551722? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a2a19ad8b904828d85ca0b4decc18856"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4","level":"info","message":"auth send jwt","requestID":"c87fb3bb601598e65ad0ef97037ed209"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c87fb3bb601598e65ad0ef97037ed209","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"c87fb3bb601598e65ad0ef97037ed209"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1338,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1338,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.759213,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c87fb3bb601598e65ad0ef97037ed209","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c87fb3bb601598e65ad0ef97037ed209","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef"},"level":"info","message":"Attempting to run experiment","requestID":"c87fb3bb601598e65ad0ef97037ed209"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef"},"level":"info","message":"Attempting to book experiment","requestID":"c87fb3bb601598e65ad0ef97037ed209"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef"},"level":"info","message":"Successfully booked experiment","requestID":"c87fb3bb601598e65ad0ef97037ed209"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8aee3610-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8aee5d20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1339,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1339,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.641239,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1340,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8aee3610-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8aee3610-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1340,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.892416,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8aee5d20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8aee5d20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:42.598109224Z"}]},"request_id":"0e85a591-80a5-40d5-b55e-c032eecb6ca9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.2009687} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"8aee3610-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:42.635329772Z"}]},"request_id":"0091cb19-30f2-4298-b951-b7953d6c99d7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.2018375} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"8aee5d20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8aee3610-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/f00fc0b7-519f-4e16-aa33-bdfaef016415? 200 36ms","method":"GET","requestID":"8aee3610-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8aee5d20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b6bead82-58b8-48b1-b4ae-76c6e2551722? 200 36ms","method":"GET","requestID":"8aee5d20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef"},"level":"info","message":"Setting up experiment","requestID":"c87fb3bb601598e65ad0ef97037ed209"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"c87fb3bb601598e65ad0ef97037ed209"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"c87fb3bb601598e65ad0ef97037ed209"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef"},"level":"info","message":"Successfully locked booking for experiment","requestID":"c87fb3bb601598e65ad0ef97037ed209"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef"},"level":"info","message":"Successfully set up experiment","requestID":"c87fb3bb601598e65ad0ef97037ed209"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8afa9220-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8afab930-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef"},"level":"info","message":"Successfully running experiment","requestID":"c87fb3bb601598e65ad0ef97037ed209"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1341,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1341,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.659525,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1342,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8afa9220-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8afa9220-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1342,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.548331,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8afab930-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8afab930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:42.598109224Z"}]},"request_id":"5591b892-bafd-483b-b08a-df208b3eb6ca","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.2592468} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8afa9220-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:42.635329772Z"}]},"request_id":"318a3302-4535-4307-80e4-10cacee37279","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.2598875} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8afab930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8afa9220-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/f00fc0b7-519f-4e16-aa33-bdfaef016415? 200 13ms","method":"GET","requestID":"8afa9220-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8afab930-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b6bead82-58b8-48b1-b4ae-76c6e2551722? 200 12ms","method":"GET","requestID":"8afab930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8afd0320-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe1bcefee-de85-4c40-91e9-07c9d59c49ef#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe1bcefee-de85-4c40-91e9-07c9d59c49ef","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"dc3c295a-057c-428f-959e-03c9c35f1aa9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.2673645} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e90b9c7d-4077-44c8-8bef-e4df3e27804d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.2676387} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"c87fb3bb601598e65ad0ef97037ed209","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1343,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b1995fc4-2ced-44f2-a832-a1294916e75c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.2708619} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1343,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.226123,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8afd0320-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"8afd0320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8afd0320-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/f00fc0b7-519f-4e16-aa33-bdfaef016415/signaling 200 32ms","method":"POST","requestID":"8afd0320-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"c87fb3bb601598e65ad0ef97037ed209"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8b023340-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"level":"info","message":"POST /experiments? 201 181ms","method":"POST","requestID":"c87fb3bb601598e65ad0ef97037ed209","responseTime":181,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1212","request_time":"0.185","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c87fb3bb601598e65ad0ef97037ed209"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1344,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e445ac6b-538e-4dc6-abcc-31dacffdc0d3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.3040643} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4","level":"info","message":"auth send jwt","requestID":"9e7b890400d4db71fd95a0a28261de39"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9e7b890400d4db71fd95a0a28261de39","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1344,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.401429,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"9e7b890400d4db71fd95a0a28261de39"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8b023340-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8b023340-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1345,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1345,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.667914,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8b023340-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b6bead82-58b8-48b1-b4ae-76c6e2551722/signaling 200 7ms","method":"POST","requestID":"8b023340-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9e7b890400d4db71fd95a0a28261de39","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"c87fb3bb601598e65ad0ef97037ed209"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"9e7b890400d4db71fd95a0a28261de39","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8b03b9e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8b03e0f0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:42.598109224Z"}]},"request_id":"c0a8edcc-bffc-498c-920b-9d52fa038fa4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.3122466} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"9e7b890400d4db71fd95a0a28261de39","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1346,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1346,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.646943,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1347,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1347,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.611174,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8b03b9e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8b03b9e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8b03e0f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8b03e0f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"9e7b890400d4db71fd95a0a28261de39"} device-1 | {"level":"info","message":"GET /devices/f00fc0b7-519f-4e16-aa33-bdfaef016415? 200 13ms","method":"GET","requestID":"9e7b890400d4db71fd95a0a28261de39","responseTime":13,"status":200,"url":"/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f00fc0b7-519f-4e16-aa33-bdfaef016415? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9e7b890400d4db71fd95a0a28261de39"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:42.598109224Z"}]},"request_id":"34639390-01dc-43dc-a5c8-128905be02cd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.3182578} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"8b03b9e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:42.635329772Z"}]},"request_id":"5bda271f-3daf-4b4d-acdd-85a8bff11cf9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.3197103} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4","level":"info","message":"auth send jwt","requestID":"9196529292879589f5e6153ec4ee5dd7"} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"8b03e0f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8b03b9e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/f00fc0b7-519f-4e16-aa33-bdfaef016415? 200 37ms","method":"GET","requestID":"8b03b9e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8b03e0f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b6bead82-58b8-48b1-b4ae-76c6e2551722? 200 37ms","method":"GET","requestID":"8b03e0f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722?"} authentication-1 | {"level":"info","message":"GET /auth 200 29ms","method":"GET","requestID":"9196529292879589f5e6153ec4ee5dd7","responseTime":29,"status":200,"url":"/auth"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef"},"level":"info","message":"Building connection plan","requestID":"c87fb3bb601598e65ad0ef97037ed209"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"9196529292879589f5e6153ec4ee5dd7"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"df232dea-7867-47b1-97f9-9f51450bae79"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"0fdd2d51-1b3c-4d06-8ad4-f63b7dd57551"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"e6f1f4c7-1c90-447d-aae4-0b1b3023155d"}]},"level":"info","message":"Built pairwise service configurations","requestID":"c87fb3bb601598e65ad0ef97037ed209"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"8b09fb70-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"8b09fb70-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"POST /rooms 201 1ms","method":"POST","requestID":"8b09fb70-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":1,"status":201,"url":"/rooms"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1348,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6?id=86314369-e6c4-47a6-af92-8c789f5f5b27","ws://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6?id=4838fe70-baf6-4b47-aefd-5faef72f14b4"]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"c87fb3bb601598e65ad0ef97037ed209"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1348,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.872637,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9196529292879589f5e6153ec4ee5dd7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"8b0a70a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"9196529292879589f5e6153ec4ee5dd7","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1349,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1349,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.841781,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8b0a70a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8b0a70a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:42.635329772Z"}]},"request_id":"79fca34d-c41b-47a8-bffb-1aeabd20af44","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.358541} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"9196529292879589f5e6153ec4ee5dd7","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"9196529292879589f5e6153ec4ee5dd7"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b6bead82-58b8-48b1-b4ae-76c6e2551722? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9196529292879589f5e6153ec4ee5dd7"} device-1 | {"level":"info","message":"GET /devices/b6bead82-58b8-48b1-b4ae-76c6e2551722? 200 14ms","method":"GET","requestID":"9196529292879589f5e6153ec4ee5dd7","responseTime":14,"status":200,"url":"/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"48185be1-8a00-46da-9b39-150d4a6e3896","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.3682978} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a0cb5ab7-3b12-4c22-879f-5e23c5fcc712","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.3684573} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"8b0a70a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"8b0a70a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"8b0a70a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338'","requestID":"8b0a70a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338'","requestID":"8b0a70a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"8b0a70a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 48ms","method":"POST","requestID":"8b0a70a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":48,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"8b0a70a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"966eb9f3-c3fd-41fe-afd6-fd19250ec338","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"8b137150-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"86314369-e6c4-47a6-af92-8c789f5f5b27\" in room \"http://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6\"","requestID":"8b137150-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"8b137150-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"8b13bf70-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"9ff86769f88dbf6aac4c4d3719b1b242","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4838fe70-baf6-4b47-aefd-5faef72f14b4\" in room \"http://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6\"","requestID":"8b13bf70-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9ff86769f88dbf6aac4c4d3719b1b242","responseTime":1,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"8b13bf70-4c2a-11f0-b702-8b8a85c3ad9a"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338"}}},"level":"info","message":"received a callback","requestID":"9ff86769f88dbf6aac4c4d3719b1b242"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"86314369-e6c4-47a6-af92-8c789f5f5b27\" in room \"http://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"86314369-e6c4-47a6-af92-8c789f5f5b27\" in room \"http://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"86314369-e6c4-47a6-af92-8c789f5f5b27\" in room \"http://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"86314369-e6c4-47a6-af92-8c789f5f5b27\" in room \"http://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"86314369-e6c4-47a6-af92-8c789f5f5b27\" in room \"http://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"86314369-e6c4-47a6-af92-8c789f5f5b27\" in room \"http://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"86314369-e6c4-47a6-af92-8c789f5f5b27\" in room \"http://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"86314369-e6c4-47a6-af92-8c789f5f5b27\" in room \"http://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6\""} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"9ff86769f88dbf6aac4c4d3719b1b242","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"9ff86769f88dbf6aac4c4d3719b1b242"} device-1 | {"data":{"peerconnection":"966eb9f3-c3fd-41fe-afd6-fd19250ec338","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"c87fb3bb601598e65ad0ef97037ed209"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8b1a7630-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"data":{"peerconnection":"966eb9f3-c3fd-41fe-afd6-fd19250ec338","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1350,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4c066536-387b-4ef4-a48c-1423996c5917","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.4639616} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1350,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.520929,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8b1a7630-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"8b1a7630-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"966eb9f3-c3fd-41fe-afd6-fd19250ec338","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8b1a7630-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/f00fc0b7-519f-4e16-aa33-bdfaef016415/signaling 200 37ms","method":"POST","requestID":"8b1a7630-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415/signaling"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"fbdabdb3c1d95510c8a3e3bb828f9f64","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"fbdabdb3c1d95510c8a3e3bb828f9f64","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8b2090b0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338"}}},"level":"info","message":"received a callback","requestID":"fbdabdb3c1d95510c8a3e3bb828f9f64"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1351,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0181329c-7a00-4747-8492-d7d6b90fc75c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.5031884} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1351,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.474691,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"8b215400-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8b2090b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8b2090b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1352,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8b2090b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b6bead82-58b8-48b1-b4ae-76c6e2551722/signaling 200 8ms","method":"POST","requestID":"8b2090b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F966eb9f3-c3fd-41fe-afd6-fd19250ec338","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2cead4dc-f978-4f9d-a1f7-594359af9f31","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.5078468} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1352,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.470738,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8b215400-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8b215400-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"8b215400-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338 200 7ms","method":"GET","requestID":"8b215400-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4","level":"info","message":"auth send jwt","requestID":"bff9fc468afdb345a71e7377d40fb6ff"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bff9fc468afdb345a71e7377d40fb6ff","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef","requestID":"bff9fc468afdb345a71e7377d40fb6ff"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 52ms","method":"POST","requestID":"fbdabdb3c1d95510c8a3e3bb828f9f64","responseTime":52,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.056","http_referrer":"","http_user_agent":"node-fetch","requestID":"fbdabdb3c1d95510c8a3e3bb828f9f64"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1353,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8b287ff0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1353,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.707344,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"bff9fc468afdb345a71e7377d40fb6ff","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"bff9fc468afdb345a71e7377d40fb6ff","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1354,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"513242d1-756d-4389-a52f-b0cded79a114","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.5568376} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1354,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.262652,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef","requestID":"bff9fc468afdb345a71e7377d40fb6ff"} experiment-1 | {"level":"info","message":"GET /experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef 200 9ms","method":"GET","requestID":"bff9fc468afdb345a71e7377d40fb6ff","responseTime":9,"status":200,"url":"/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef HTTP/1.1","status": "200","body_bytes_sent":"1285","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bff9fc468afdb345a71e7377d40fb6ff"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8b287ff0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8b287ff0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8b287ff0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b6bead82-58b8-48b1-b4ae-76c6e2551722/signaling 200 34ms","method":"POST","requestID":"8b287ff0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4","level":"info","message":"auth send jwt","requestID":"5738fd2408c0855c4565d60bb3177748"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"5738fd2408c0855c4565d60bb3177748","responseTime":26,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8b2dfe30-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef","requestID":"5738fd2408c0855c4565d60bb3177748"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1355,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1356,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1356,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.892752,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1355,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.334538,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5738fd2408c0855c4565d60bb3177748","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"5738fd2408c0855c4565d60bb3177748","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d21ffdef-a573-4685-a87a-1e3cac4cce80","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.592457} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8b2dfe30-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","method":"POST","requestID":"8b2dfe30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8b2dfe30-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/f00fc0b7-519f-4e16-aa33-bdfaef016415/signaling 200 11ms","method":"POST","requestID":"8b2dfe30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef"},"level":"info","message":"Attempting to finish experiment","requestID":"5738fd2408c0855c4565d60bb3177748"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"8b2ffa00-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1357,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1357,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.64163,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8b2ffa00-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8b2ffa00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338","device":"b6bead82-58b8-48b1-b4ae-76c6e2551722","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/15e9f2df-3835-47a4-9c20-71384c7559b6?id=86314369-e6c4-47a6-af92-8c789f5f5b27 HTTP/1.1","status": "101","body_bytes_sent":"874","request_time":"0.222","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7c1ae943fc610259901724a25078fc4b"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"86314369-e6c4-47a6-af92-8c789f5f5b27\" in room \"http://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6\""} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/15e9f2df-3835-47a4-9c20-71384c7559b6?id=4838fe70-baf6-4b47-aefd-5faef72f14b4 HTTP/1.1","status": "101","body_bytes_sent":"2","request_time":"0.223","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1e9786ae27eef5fd2461ef04817ad677"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338","device":"f00fc0b7-519f-4e16-aa33-bdfaef016415","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"966eb9f3-c3fd-41fe-afd6-fd19250ec338","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"86314369-e6c4-47a6-af92-8c789f5f5b27\" from room \"http://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6\", code: 1005, reason: "} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"4838fe70-baf6-4b47-aefd-5faef72f14b4\" in room \"http://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"4838fe70-baf6-4b47-aefd-5faef72f14b4\" from room \"http://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6\", code: 1005, reason: "} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F966eb9f3-c3fd-41fe-afd6-fd19250ec338': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F966eb9f3-c3fd-41fe-afd6-fd19250ec338","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"5e6aa9a7-558b-4244-abe4-b39ca4b92d20","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.6385612} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"225f37095ef085e1f5f690e157345dd7","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"225f37095ef085e1f5f690e157345dd7","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"da069aac-db66-4265-afba-a9816abcb46c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.6389565} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"8b2ffa00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"23c0cf136e80fc2e50a46aa5b17bc4b8","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"23c0cf136e80fc2e50a46aa5b17bc4b8","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338"}}},"level":"info","message":"received a callback","requestID":"225f37095ef085e1f5f690e157345dd7"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338"}}},"level":"info","message":"received a callback","requestID":"23c0cf136e80fc2e50a46aa5b17bc4b8"} device-1 | {"data":{"peerconnection":"966eb9f3-c3fd-41fe-afd6-fd19250ec338","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"8b2ffa00-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338 204 55ms","method":"DELETE","requestID":"8b2ffa00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":55,"status":204,"url":"/peerconnections/966eb9f3-c3fd-41fe-afd6-fd19250ec338"} device-1 | {"data":{"peerconnection":"966eb9f3-c3fd-41fe-afd6-fd19250ec338","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"966eb9f3-c3fd-41fe-afd6-fd19250ec338","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef"},"level":"info","message":"Successfully finished experiment","requestID":"5738fd2408c0855c4565d60bb3177748"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8b3e78f0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1358,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb6bead82-58b8-48b1-b4ae-76c6e2551722","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"28a27d5e-d848-430e-9cd6-7d6a8f404054","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.6993005} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1358,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.355495,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8b3e78f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8b3e78f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8b3e78f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b6bead82-58b8-48b1-b4ae-76c6e2551722/signaling 200 8ms","method":"POST","requestID":"8b3e78f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8b43a910-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1359,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff00fc0b7-519f-4e16-aa33-bdfaef016415","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"edffbc86-3c84-48b2-b0c7-0ff08a78be1a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.7335172} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe1bcefee-de85-4c40-91e9-07c9d59c49ef': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe1bcefee-de85-4c40-91e9-07c9d59c49ef","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"1ea26dbc-b894-4b62-82f0-4fbc7050ee9b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.7338529} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"63bd18e7-14d6-40e3-8a11-2fa6806cd14e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.7343087} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1359,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.492503,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8b43a910-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"8b43a910-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"level":"info","message":"POST /relations/update 200 43ms","method":"POST","requestID":"5738fd2408c0855c4565d60bb3177748","responseTime":43,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8b43a910-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/f00fc0b7-519f-4e16-aa33-bdfaef016415/signaling 200 10ms","method":"POST","requestID":"8b43a910-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef","requestID":"5738fd2408c0855c4565d60bb3177748"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.274","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5738fd2408c0855c4565d60bb3177748"} experiment-1 | {"level":"info","message":"DELETE /experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef 204 247ms","method":"DELETE","requestID":"5738fd2408c0855c4565d60bb3177748","responseTime":247,"status":204,"url":"/experiments/e1bcefee-de85-4c40-91e9-07c9d59c49ef"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 195ms","method":"POST","requestID":"225f37095ef085e1f5f690e157345dd7","responseTime":195,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.198","http_referrer":"","http_user_agent":"node-fetch","requestID":"225f37095ef085e1f5f690e157345dd7"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 195ms","method":"POST","requestID":"23c0cf136e80fc2e50a46aa5b17bc4b8","responseTime":195,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.199","http_referrer":"","http_user_agent":"node-fetch","requestID":"23c0cf136e80fc2e50a46aa5b17bc4b8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4","level":"info","message":"auth send jwt","requestID":"9702d63aa101355ba03bbf5283f6e62b"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9702d63aa101355ba03bbf5283f6e62b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"9702d63aa101355ba03bbf5283f6e62b"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1644","request_time":"0.815","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"23fcd70bf7c81fcec5f5994045820ebe"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1360,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1360,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.792293,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9702d63aa101355ba03bbf5283f6e62b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"9702d63aa101355ba03bbf5283f6e62b","responseTime":4,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1645","request_time":"0.854","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d1a4ca2bd57ccf932b7d0c5769317912"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/b6bead82-58b8-48b1-b4ae-76c6e2551722' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"50acb275-349f-4e88-a211-98bf72667c42","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.8808842} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"9702d63aa101355ba03bbf5283f6e62b","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"db5883ef-67ac-4a7b-a168-25f95cee012a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.8851314} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"9702d63aa101355ba03bbf5283f6e62b","responseTime":3,"status":200,"url":"/relations/update"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/f00fc0b7-519f-4e16-aa33-bdfaef016415' closed"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"874e6d35-0993-4d0d-8a6e-786e3f1cca72","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.8966615} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0d135955-8c89-4753-ae12-fd74b8172d79","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.9210064} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"9702d63aa101355ba03bbf5283f6e62b","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:45.896630685Z"}]},"request_id":"28baaa62-00b3-45fe-8304-a7199ee118f2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.9242308} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"9702d63aa101355ba03bbf5283f6e62b","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"9702d63aa101355ba03bbf5283f6e62b"} device-1 | {"level":"info","message":"POST /devices? 201 85ms","method":"POST","requestID":"9702d63aa101355ba03bbf5283f6e62b","responseTime":85,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.089","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9702d63aa101355ba03bbf5283f6e62b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4","level":"info","message":"auth send jwt","requestID":"d67a5bb37f04ab7d01aba0b23a823cee"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d67a5bb37f04ab7d01aba0b23a823cee","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"d67a5bb37f04ab7d01aba0b23a823cee"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1361,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1361,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.710456,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:45Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d67a5bb37f04ab7d01aba0b23a823cee","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240605,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNX0.RKgN4_YC70fY0bUlNv_ef7qzLB35ZvB9Dr2RSQulBe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d67a5bb37f04ab7d01aba0b23a823cee","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"6d8c42ae-b7ae-421a-9544-24546d8cf319","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.9457796} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d67a5bb37f04ab7d01aba0b23a823cee","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"db97b017-20ea-44a0-b20d-b059f7172010","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.9731712} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"d67a5bb37f04ab7d01aba0b23a823cee","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"6b6e6485-f087-4a17-814d-f2787e0d20b0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.9782977} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"228f1c00-6c15-46e6-94c1-530d960ca8ab","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.9783506} authorization-1 | {"level":"info","message":"POST /relations/update 200 31ms","method":"POST","requestID":"d67a5bb37f04ab7d01aba0b23a823cee","responseTime":31,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:45.978267151Z"}]},"request_id":"949a01a5-8eb4-4ded-bec9-5de4f3b690a1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240605.9820206} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d67a5bb37f04ab7d01aba0b23a823cee","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"d67a5bb37f04ab7d01aba0b23a823cee"} device-1 | {"level":"info","message":"POST /devices? 201 53ms","method":"POST","requestID":"d67a5bb37f04ab7d01aba0b23a823cee","responseTime":53,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.057","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d67a5bb37f04ab7d01aba0b23a823cee"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNn0.3gENnjH3ObHQWbwccEoCeeWO49kbWtj1sgUymiDgNgo","level":"info","message":"auth send jwt","requestID":"0f95f68c31787e28c0d48593b8b4d9bc"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0f95f68c31787e28c0d48593b8b4d9bc","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"0f95f68c31787e28c0d48593b8b4d9bc"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1362,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:46Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1362,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.692308,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:46Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0f95f68c31787e28c0d48593b8b4d9bc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240606,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNn0.3gENnjH3ObHQWbwccEoCeeWO49kbWtj1sgUymiDgNgo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0f95f68c31787e28c0d48593b8b4d9bc","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:45.978267151Z"}]},"request_id":"1b11cd69-e74c-4fa0-bd6d-88d11233a218","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240606.9307451} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"0f95f68c31787e28c0d48593b8b4d9bc","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"da40dd30-9cc8-4951-aa10-2847a8117252","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240606.9350855} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"0f95f68c31787e28c0d48593b8b4d9bc","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:45.978267151Z"}]},"request_id":"50037c80-f236-4d81-868f-9b8d290f3f58","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240606.9439847} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"0f95f68c31787e28c0d48593b8b4d9bc","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"0f95f68c31787e28c0d48593b8b4d9bc"} device-1 | {"level":"info","message":"PATCH /devices/2c73c7af-21e0-4296-aa47-cab246b48667 200 43ms","method":"PATCH","requestID":"0f95f68c31787e28c0d48593b8b4d9bc","responseTime":43,"status":200,"url":"/devices/2c73c7af-21e0-4296-aa47-cab246b48667"} gateway-1 | {"time_local":"18/Jun/2025:09:56:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/2c73c7af-21e0-4296-aa47-cab246b48667 HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.047","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"0f95f68c31787e28c0d48593b8b4d9bc"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNn0.3gENnjH3ObHQWbwccEoCeeWO49kbWtj1sgUymiDgNgo","level":"info","message":"auth send jwt","requestID":"73a4b08d49bfc9224beaadd9b551fa72"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"73a4b08d49bfc9224beaadd9b551fa72","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"73a4b08d49bfc9224beaadd9b551fa72"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1363,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:46Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1363,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.637471,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:46Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"73a4b08d49bfc9224beaadd9b551fa72","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240606,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwNn0.3gENnjH3ObHQWbwccEoCeeWO49kbWtj1sgUymiDgNgo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"73a4b08d49bfc9224beaadd9b551fa72","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"73a4b08d49bfc9224beaadd9b551fa72"} device-1 | {"level":"info","message":"POST /devices/2c73c7af-21e0-4296-aa47-cab246b48667/websocket 200 37ms","method":"POST","requestID":"73a4b08d49bfc9224beaadd9b551fa72","responseTime":37,"status":200,"url":"/devices/2c73c7af-21e0-4296-aa47-cab246b48667/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:56:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/2c73c7af-21e0-4296-aa47-cab246b48667/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.040","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"73a4b08d49bfc9224beaadd9b551fa72"} device-1 | {"level":"info","message":"device 'http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667' connected"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"b39b68cb-245c-47bf-a578-cd960c90b15e\" in room \"http://localhost/rooms/ee2d73d5-b55e-4d50-bfd8-36561e7750b2\"","requestID":"891f4270-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"5c8a180f-5a8d-447d-8d9f-fc503dddb0c5\" in room \"http://localhost/rooms/ee2d73d5-b55e-4d50-bfd8-36561e7750b2\"","requestID":"891f6980-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0e65c7feb28b3542ffe262ea8840d4bb","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0e65c7feb28b3542ffe262ea8840d4bb","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/55189854-f89d-4220-bcc3-902df9e4ad12/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0e65c7feb28b3542ffe262ea8840d4bb"} device-1 | {"level":"info","message":"OPTIONS /devices/55189854-f89d-4220-bcc3-902df9e4ad12/websocket 200 1ms","method":"OPTIONS","requestID":"0e65c7feb28b3542ffe262ea8840d4bb","responseTime":1,"status":200,"url":"/devices/55189854-f89d-4220-bcc3-902df9e4ad12/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q","level":"info","message":"auth send jwt","requestID":"d91c15116e6cd858793252b80b473a84"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d91c15116e6cd858793252b80b473a84","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"d91c15116e6cd858793252b80b473a84"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1364,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1364,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.208601,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d91c15116e6cd858793252b80b473a84","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240608,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"d91c15116e6cd858793252b80b473a84","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"d91c15116e6cd858793252b80b473a84"} gateway-1 | {"time_local":"18/Jun/2025:09:56:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/55189854-f89d-4220-bcc3-902df9e4ad12/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d91c15116e6cd858793252b80b473a84"} device-1 | {"level":"info","message":"POST /devices/55189854-f89d-4220-bcc3-902df9e4ad12/websocket 200 19ms","method":"POST","requestID":"d91c15116e6cd858793252b80b473a84","responseTime":19,"status":200,"url":"/devices/55189854-f89d-4220-bcc3-902df9e4ad12/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"166707e251bf8e48aa29880350c79888","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"166707e251bf8e48aa29880350c79888","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/55189854-f89d-4220-bcc3-902df9e4ad12? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"166707e251bf8e48aa29880350c79888"} device-1 | {"level":"info","message":"OPTIONS /devices/55189854-f89d-4220-bcc3-902df9e4ad12? 200 1ms","method":"OPTIONS","requestID":"166707e251bf8e48aa29880350c79888","responseTime":1,"status":200,"url":"/devices/55189854-f89d-4220-bcc3-902df9e4ad12?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q","level":"info","message":"auth send jwt","requestID":"bf755e9fcb268e40668f883227e588c7"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bf755e9fcb268e40668f883227e588c7","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"bf755e9fcb268e40668f883227e588c7"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1365,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1365,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.694537,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"bf755e9fcb268e40668f883227e588c7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240608,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"bf755e9fcb268e40668f883227e588c7","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:45.896630685Z"}]},"request_id":"762521cd-69fa-4143-8a71-cca5b45b35d4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.4242923} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"bf755e9fcb268e40668f883227e588c7","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1f925348-cf1f-407d-9d9b-986c0dd75f71","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.4292717} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"bf755e9fcb268e40668f883227e588c7","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:45.896630685Z"}]},"request_id":"dc398aed-073d-4f86-b588-7f53f712fbb1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.4380379} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"bf755e9fcb268e40668f883227e588c7","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"bf755e9fcb268e40668f883227e588c7"} gateway-1 | {"time_local":"18/Jun/2025:09:56:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/55189854-f89d-4220-bcc3-902df9e4ad12? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.028","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"bf755e9fcb268e40668f883227e588c7"} device-1 | {"level":"info","message":"PATCH /devices/55189854-f89d-4220-bcc3-902df9e4ad12? 200 24ms","method":"PATCH","requestID":"bf755e9fcb268e40668f883227e588c7","responseTime":24,"status":200,"url":"/devices/55189854-f89d-4220-bcc3-902df9e4ad12?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q","level":"info","message":"auth send jwt","requestID":"852a2b2b5521fadcef226fbbc2f06ace"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"852a2b2b5521fadcef226fbbc2f06ace","responseTime":8,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"852a2b2b5521fadcef226fbbc2f06ace"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1366,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1366,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.633695,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"852a2b2b5521fadcef226fbbc2f06ace","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240608,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"852a2b2b5521fadcef226fbbc2f06ace","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:45.896630685Z"}]},"request_id":"be5b9e82-5791-4bb0-9978-1aac867165da","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.458466} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"852a2b2b5521fadcef226fbbc2f06ace","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"852a2b2b5521fadcef226fbbc2f06ace"} gateway-1 | {"time_local":"18/Jun/2025:09:56:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/55189854-f89d-4220-bcc3-902df9e4ad12? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"852a2b2b5521fadcef226fbbc2f06ace"} device-1 | {"level":"info","message":"GET /devices/55189854-f89d-4220-bcc3-902df9e4ad12? 200 9ms","method":"GET","requestID":"852a2b2b5521fadcef226fbbc2f06ace","responseTime":9,"status":200,"url":"/devices/55189854-f89d-4220-bcc3-902df9e4ad12?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q","level":"info","message":"auth send jwt","requestID":"09d15eb3523856148067424ebe47b386"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"09d15eb3523856148067424ebe47b386","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"09d15eb3523856148067424ebe47b386"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1367,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1367,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.934371,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"09d15eb3523856148067424ebe47b386","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240608,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"09d15eb3523856148067424ebe47b386","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:45.978267151Z"}]},"request_id":"f070fc10-6d37-45a1-b343-35f7a34e2148","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.4758756} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"09d15eb3523856148067424ebe47b386","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"09d15eb3523856148067424ebe47b386"} gateway-1 | {"time_local":"18/Jun/2025:09:56:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2c73c7af-21e0-4296-aa47-cab246b48667? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"09d15eb3523856148067424ebe47b386"} device-1 | {"level":"info","message":"GET /devices/2c73c7af-21e0-4296-aa47-cab246b48667? 200 9ms","method":"GET","requestID":"09d15eb3523856148067424ebe47b386","responseTime":9,"status":200,"url":"/devices/2c73c7af-21e0-4296-aa47-cab246b48667?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q","level":"info","message":"auth send jwt","requestID":"292fa118a816daa8027351f51e3e6a05"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"292fa118a816daa8027351f51e3e6a05","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"292fa118a816daa8027351f51e3e6a05"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1368,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1368,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.293302,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"292fa118a816daa8027351f51e3e6a05","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240608,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"292fa118a816daa8027351f51e3e6a05","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c7ee4521-6105-4be2-9808-2a5798273e75"},"level":"info","message":"Attempting to run experiment","requestID":"292fa118a816daa8027351f51e3e6a05"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c7ee4521-6105-4be2-9808-2a5798273e75"},"level":"info","message":"Attempting to book experiment","requestID":"292fa118a816daa8027351f51e3e6a05"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c7ee4521-6105-4be2-9808-2a5798273e75"},"level":"info","message":"Successfully booked experiment","requestID":"292fa118a816daa8027351f51e3e6a05"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8ceff980-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8cf3ca10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1369,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1369,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.646981,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1370,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8ceff980-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240608,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8ceff980-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1370,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.62111,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8cf3ca10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240608,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8cf3ca10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:45.896630685Z"}]},"request_id":"59352fb0-b6d5-47f4-a64d-79e44b54f560","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.567634} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"8ceff980-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:45.978267151Z"}]},"request_id":"485f7e26-ebbc-4f3e-834e-d9e67f12368c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.5681672} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"8cf3ca10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8ceff980-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/55189854-f89d-4220-bcc3-902df9e4ad12? 200 35ms","method":"GET","requestID":"8ceff980-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/55189854-f89d-4220-bcc3-902df9e4ad12?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8cf3ca10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/2c73c7af-21e0-4296-aa47-cab246b48667? 200 11ms","method":"GET","requestID":"8cf3ca10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/2c73c7af-21e0-4296-aa47-cab246b48667?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c7ee4521-6105-4be2-9808-2a5798273e75"},"level":"info","message":"Setting up experiment","requestID":"292fa118a816daa8027351f51e3e6a05"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"292fa118a816daa8027351f51e3e6a05"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c7ee4521-6105-4be2-9808-2a5798273e75"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"292fa118a816daa8027351f51e3e6a05"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c7ee4521-6105-4be2-9808-2a5798273e75"},"level":"info","message":"Successfully locked booking for experiment","requestID":"292fa118a816daa8027351f51e3e6a05"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c7ee4521-6105-4be2-9808-2a5798273e75"},"level":"info","message":"Successfully set up experiment","requestID":"292fa118a816daa8027351f51e3e6a05"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8cfccac0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8cfcf1d0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c7ee4521-6105-4be2-9808-2a5798273e75"},"level":"info","message":"Successfully running experiment","requestID":"292fa118a816daa8027351f51e3e6a05"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1371,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1372,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1371,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.931444,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8cfccac0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240608,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8cfccac0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1372,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.631787,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8cfcf1d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240608,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8cfcf1d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:45.896630685Z"}]},"request_id":"d06f4911-e717-4b6a-8b40-d7aa1a2c231e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.6287959} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8cfccac0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:45.978267151Z"}]},"request_id":"225b91f5-37b6-480d-b35e-4d21f8ba1019","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.6297894} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8cfcf1d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8cfccac0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/55189854-f89d-4220-bcc3-902df9e4ad12? 200 37ms","method":"GET","requestID":"8cfccac0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/55189854-f89d-4220-bcc3-902df9e4ad12?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8cfcf1d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/2c73c7af-21e0-4296-aa47-cab246b48667? 200 37ms","method":"GET","requestID":"8cfcf1d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/2c73c7af-21e0-4296-aa47-cab246b48667?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9117c9ba-7db8-409b-a9fa-42df3229987a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.658819} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc7ee4521-6105-4be2-9808-2a5798273e75#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc7ee4521-6105-4be2-9808-2a5798273e75","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"e63c195f-94a5-4a7c-9b64-7422c8c8c676","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.6590238} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"292fa118a816daa8027351f51e3e6a05","responseTime":36,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8d035a70-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1373,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/c7ee4521-6105-4be2-9808-2a5798273e75","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"292fa118a816daa8027351f51e3e6a05"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f511294e-6480-45d3-ad38-f5d23a497131","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.6677616} gateway-1 | {"time_local":"18/Jun/2025:09:56:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1216","request_time":"0.188","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"292fa118a816daa8027351f51e3e6a05"} experiment-1 | {"level":"info","message":"POST /experiments? 201 183ms","method":"POST","requestID":"292fa118a816daa8027351f51e3e6a05","responseTime":183,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1373,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.03832,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8d035a70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8d035a70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q","level":"info","message":"auth send jwt","requestID":"f1240294372fa83ad044440287e3006a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8d035a70-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f1240294372fa83ad044440287e3006a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/55189854-f89d-4220-bcc3-902df9e4ad12/signaling 200 9ms","method":"POST","requestID":"8d035a70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/55189854-f89d-4220-bcc3-902df9e4ad12/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"f1240294372fa83ad044440287e3006a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8d050820-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1374,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1374,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.860829,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1375,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f1240294372fa83ad044440287e3006a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240608,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"f1240294372fa83ad044440287e3006a","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"465f709b-6924-42b5-b296-45bc54cf7a53","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.6787689} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1375,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.733772,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8d050820-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"8d050820-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:45.896630685Z"}]},"request_id":"416357a3-abb3-469a-9d56-04e24c48e52e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.6804488} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"f1240294372fa83ad044440287e3006a","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8d050820-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/2c73c7af-21e0-4296-aa47-cab246b48667/signaling 200 34ms","method":"POST","requestID":"8d050820-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/2c73c7af-21e0-4296-aa47-cab246b48667/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"f1240294372fa83ad044440287e3006a"} gateway-1 | {"time_local":"18/Jun/2025:09:56:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/55189854-f89d-4220-bcc3-902df9e4ad12? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f1240294372fa83ad044440287e3006a"} device-1 | {"level":"info","message":"GET /devices/55189854-f89d-4220-bcc3-902df9e4ad12? 200 36ms","method":"GET","requestID":"f1240294372fa83ad044440287e3006a","responseTime":36,"status":200,"url":"/devices/55189854-f89d-4220-bcc3-902df9e4ad12?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c7ee4521-6105-4be2-9808-2a5798273e75"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"292fa118a816daa8027351f51e3e6a05"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8d0a8660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8d0aad70-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q","level":"info","message":"auth send jwt","requestID":"37c8dad94667697fed92d3d7d734d4c8"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"37c8dad94667697fed92d3d7d734d4c8","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1376,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1376,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.034513,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1377,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8d0a8660-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240608,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8d0a8660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1377,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.798758,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8d0aad70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240608,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8d0aad70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"37c8dad94667697fed92d3d7d734d4c8"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:45.896630685Z"}]},"request_id":"57484bc3-f6ae-49e7-ab25-591ce12ff4f1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.719163} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8d0a8660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:45.978267151Z"}]},"request_id":"8366a7c2-615e-4287-8b6d-60af0e7576a6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.7226038} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"8d0aad70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1378,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1378,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.834333,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"37c8dad94667697fed92d3d7d734d4c8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240608,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"37c8dad94667697fed92d3d7d734d4c8","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8d0a8660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/55189854-f89d-4220-bcc3-902df9e4ad12? 200 44ms","method":"GET","requestID":"8d0a8660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":44,"status":200,"url":"/devices/55189854-f89d-4220-bcc3-902df9e4ad12?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:45.978267151Z"}]},"request_id":"d99786a6-7cfc-4e0a-8a5c-9d22fc6cc839","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.755792} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"37c8dad94667697fed92d3d7d734d4c8","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8d0aad70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/2c73c7af-21e0-4296-aa47-cab246b48667? 200 48ms","method":"GET","requestID":"8d0aad70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":48,"status":200,"url":"/devices/2c73c7af-21e0-4296-aa47-cab246b48667?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c7ee4521-6105-4be2-9808-2a5798273e75"},"level":"info","message":"Building connection plan","requestID":"292fa118a816daa8027351f51e3e6a05"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"d05cca3f-0fe4-4f11-9195-7a921905c156"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"c9755613-ace6-490c-be14-6bea945a5494"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"512bb8f6-befe-45a5-b01a-047cf6b2b4e8"}]},"level":"info","message":"Built pairwise service configurations","requestID":"292fa118a816daa8027351f51e3e6a05"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"8d1275a0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"8d1275a0-4c2a-11f0-b702-8b8a85c3ad9a"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"37c8dad94667697fed92d3d7d734d4c8"} forwarding-1 | {"level":"info","message":"POST /rooms 201 0ms","method":"POST","requestID":"8d1275a0-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":0,"status":201,"url":"/rooms"} gateway-1 | {"time_local":"18/Jun/2025:09:56:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2c73c7af-21e0-4296-aa47-cab246b48667? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"37c8dad94667697fed92d3d7d734d4c8"} device-1 | {"level":"info","message":"GET /devices/2c73c7af-21e0-4296-aa47-cab246b48667? 200 46ms","method":"GET","requestID":"37c8dad94667697fed92d3d7d734d4c8","responseTime":46,"status":200,"url":"/devices/2c73c7af-21e0-4296-aa47-cab246b48667?"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/6367efa6-a9f9-4046-992a-6d6a06903589?id=e009434c-8e5e-4f6b-b429-22cdfec9ef00","ws://localhost/rooms/6367efa6-a9f9-4046-992a-6d6a06903589?id=4a5f6479-539b-44b6-999b-3b420ac459c5"]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"292fa118a816daa8027351f51e3e6a05"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"8d12c3c0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1379,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1379,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.70781,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8d12c3c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240608,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8d12c3c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"74d92772-e829-4993-806d-11ff9b8552ac","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.7742472} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"40e93604-59dd-4fa4-a661-3f094ed91531","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.7743971} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"8d12c3c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"8d12c3c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"8d12c3c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f'","requestID":"8d12c3c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f'","requestID":"8d12c3c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"8d12c3c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 47ms","method":"POST","requestID":"8d12c3c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":47,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"8d12c3c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"8d1b2830-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"e009434c-8e5e-4f6b-b429-22cdfec9ef00\" in room \"http://localhost/rooms/6367efa6-a9f9-4046-992a-6d6a06903589\"","requestID":"8d1b2830-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"8d1b2830-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"335cf882977b7721ea49a99637174ba8","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"335cf882977b7721ea49a99637174ba8","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f"}}},"level":"info","message":"received a callback","requestID":"335cf882977b7721ea49a99637174ba8"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"8d1b9d60-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4a5f6479-539b-44b6-999b-3b420ac459c5\" in room \"http://localhost/rooms/6367efa6-a9f9-4046-992a-6d6a06903589\"","requestID":"8d1b9d60-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"8d1b9d60-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"e009434c-8e5e-4f6b-b429-22cdfec9ef00\" in room \"http://localhost/rooms/6367efa6-a9f9-4046-992a-6d6a06903589\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"e009434c-8e5e-4f6b-b429-22cdfec9ef00\" in room \"http://localhost/rooms/6367efa6-a9f9-4046-992a-6d6a06903589\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"e009434c-8e5e-4f6b-b429-22cdfec9ef00\" in room \"http://localhost/rooms/6367efa6-a9f9-4046-992a-6d6a06903589\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"e009434c-8e5e-4f6b-b429-22cdfec9ef00\" in room \"http://localhost/rooms/6367efa6-a9f9-4046-992a-6d6a06903589\""} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 33ms","method":"POST","requestID":"335cf882977b7721ea49a99637174ba8","responseTime":33,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch","requestID":"335cf882977b7721ea49a99637174ba8"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f","statusDeviceA":"connected","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a9253bafa00347405fd22bc6303b9302","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a9253bafa00347405fd22bc6303b9302","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12"}],"status":"new","type":"websocket","url":"http://localhost/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f"}}},"level":"info","message":"received a callback","requestID":"a9253bafa00347405fd22bc6303b9302"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c7ee4521-6105-4be2-9808-2a5798273e75"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"292fa118a816daa8027351f51e3e6a05"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8d220600-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"a9253bafa00347405fd22bc6303b9302","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"a9253bafa00347405fd22bc6303b9302"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1380,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"eba4f53b-336b-4346-b4d1-70acd4f51b45","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.8708034} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"02af060c6b8ab0b053221c0193397c52","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1380,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.458834,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"02af060c6b8ab0b053221c0193397c52","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8d220600-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 32ms","method":"POST","requestID":"8d220600-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/authorize"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f"}}},"level":"info","message":"received a callback","requestID":"02af060c6b8ab0b053221c0193397c52"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"02af060c6b8ab0b053221c0193397c52","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"02af060c6b8ab0b053221c0193397c52"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8d220600-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/55189854-f89d-4220-bcc3-902df9e4ad12/signaling 200 42ms","method":"POST","requestID":"8d220600-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":42,"status":200,"url":"/devices/55189854-f89d-4220-bcc3-902df9e4ad12/signaling"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"7cdc1a9294eff1a3bb74081f639a7d64","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7cdc1a9294eff1a3bb74081f639a7d64","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8d28e3d0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f"}}},"level":"info","message":"received a callback","requestID":"7cdc1a9294eff1a3bb74081f639a7d64"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1381,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ea56c51b-646a-4d7f-a7dc-eeb0b5b5571e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.9136896} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1381,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.53283,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"8d29a720-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8d28e3d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8d28e3d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1382,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"454903b5-ae12-43ce-be4e-af4038626b0f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.9182432} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1382,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.133842,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8d28e3d0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8d29a720-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"POST /devices/2c73c7af-21e0-4296-aa47-cab246b48667/signaling 200 10ms","method":"POST","requestID":"8d28e3d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/2c73c7af-21e0-4296-aa47-cab246b48667/signaling"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8d29a720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"8d29a720-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f 200 31ms","method":"GET","requestID":"8d29a720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q","level":"info","message":"auth send jwt","requestID":"464badc7ca592c9ed757bf9eda412d81"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"464badc7ca592c9ed757bf9eda412d81","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/c7ee4521-6105-4be2-9808-2a5798273e75","requestID":"464badc7ca592c9ed757bf9eda412d81"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1383,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 50ms","method":"POST","requestID":"7cdc1a9294eff1a3bb74081f639a7d64","responseTime":50,"status":200,"url":"/callbacks/experiment"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1383,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.691722,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} gateway-1 | {"time_local":"18/Jun/2025:09:56:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch","requestID":"7cdc1a9294eff1a3bb74081f639a7d64"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c7ee4521-6105-4be2-9808-2a5798273e75","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"464badc7ca592c9ed757bf9eda412d81","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/c7ee4521-6105-4be2-9808-2a5798273e75","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240608,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8d30ac00-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"464badc7ca592c9ed757bf9eda412d81","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1384,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"42e73d25-7f95-4e11-9be3-c7982a5a253d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.9643707} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/c7ee4521-6105-4be2-9808-2a5798273e75","requestID":"464badc7ca592c9ed757bf9eda412d81"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1384,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.363295,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} gateway-1 | {"time_local":"18/Jun/2025:09:56:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/c7ee4521-6105-4be2-9808-2a5798273e75 HTTP/1.1","status": "200","body_bytes_sent":"1289","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"464badc7ca592c9ed757bf9eda412d81"} experiment-1 | {"level":"info","message":"GET /experiments/c7ee4521-6105-4be2-9808-2a5798273e75 200 9ms","method":"GET","requestID":"464badc7ca592c9ed757bf9eda412d81","responseTime":9,"status":200,"url":"/experiments/c7ee4521-6105-4be2-9808-2a5798273e75"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8d30ac00-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8d30ac00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8d30ac00-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/2c73c7af-21e0-4296-aa47-cab246b48667/signaling 200 8ms","method":"POST","requestID":"8d30ac00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/2c73c7af-21e0-4296-aa47-cab246b48667/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q","level":"info","message":"auth send jwt","requestID":"dd16337b2379f72a943a56808779a015"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"dd16337b2379f72a943a56808779a015","responseTime":26,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/c7ee4521-6105-4be2-9808-2a5798273e75","requestID":"dd16337b2379f72a943a56808779a015"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8d360330-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1385,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1385,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.646076,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1386,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:48Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c7ee4521-6105-4be2-9808-2a5798273e75","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"dd16337b2379f72a943a56808779a015","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/c7ee4521-6105-4be2-9808-2a5798273e75","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240608,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"dd16337b2379f72a943a56808779a015","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"757a39d8-397d-4572-accc-86bec760d1a1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240608.9996326} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1386,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.365184,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8d360330-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8d360330-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c7ee4521-6105-4be2-9808-2a5798273e75"},"level":"info","message":"Attempting to finish experiment","requestID":"dd16337b2379f72a943a56808779a015"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"8d373bb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8d360330-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/55189854-f89d-4220-bcc3-902df9e4ad12/signaling 200 9ms","method":"POST","requestID":"8d360330-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/55189854-f89d-4220-bcc3-902df9e4ad12/signaling"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1387,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:49Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1387,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.711198,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:49Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8d373bb0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240608,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOH0.ohqZmJ1K_67p3QmCmO5MJ23F6lSg5iBXSGDLgpkib0Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8d373bb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:56:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/6367efa6-a9f9-4046-992a-6d6a06903589?id=e009434c-8e5e-4f6b-b429-22cdfec9ef00 HTTP/1.1","status": "101","body_bytes_sent":"436","request_time":"0.192","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"d932be0faf5ad5cb71a145688ab580ac"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"e009434c-8e5e-4f6b-b429-22cdfec9ef00\" in room \"http://localhost/rooms/6367efa6-a9f9-4046-992a-6d6a06903589\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"e009434c-8e5e-4f6b-b429-22cdfec9ef00\" from room \"http://localhost/rooms/6367efa6-a9f9-4046-992a-6d6a06903589\", code: 1006, reason: "} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} gateway-1 | {"time_local":"18/Jun/2025:09:56:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/6367efa6-a9f9-4046-992a-6d6a06903589?id=4a5f6479-539b-44b6-999b-3b420ac459c5 HTTP/1.1","status": "101","body_bytes_sent":"2","request_time":"0.192","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"42d5df5573d27fd684e68f163c6f850f"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"4a5f6479-539b-44b6-999b-3b420ac459c5\" in room \"http://localhost/rooms/6367efa6-a9f9-4046-992a-6d6a06903589\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"4a5f6479-539b-44b6-999b-3b420ac459c5\" from room \"http://localhost/rooms/6367efa6-a9f9-4046-992a-6d6a06903589\", code: 1005, reason: "} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f","device":"55189854-f89d-4220-bcc3-902df9e4ad12","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2ceed5b541a208cb53d587856fb192ea","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"e281e767-457e-48e8-af1e-b555094845dc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240609.016518} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f"}}},"level":"info","message":"received a callback","requestID":"2ceed5b541a208cb53d587856fb192ea"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f"}}},"level":"info","message":"received a callback","requestID":"5e237340395a1d0ad1f060dca902adc8"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f8bbe0f4-108a-40ad-8a89-b3a802aa404e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240609.0166786} authentication-1 | {"level":"info","message":"GET /auth 200 25ms","method":"GET","requestID":"2ceed5b541a208cb53d587856fb192ea","responseTime":25,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"5e237340395a1d0ad1f060dca902adc8","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5e237340395a1d0ad1f060dca902adc8","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 31ms","method":"POST","requestID":"8d373bb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"8d373bb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f 204 53ms","method":"DELETE","requestID":"8d373bb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":53,"status":204,"url":"/peerconnections/ccd7ea47-a5d7-424e-bb8f-3fe3cae3d89f"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c7ee4521-6105-4be2-9808-2a5798273e75"},"level":"info","message":"Successfully finished experiment","requestID":"dd16337b2379f72a943a56808779a015"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8d44a930-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1388,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:49Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2c73c7af-21e0-4296-aa47-cab246b48667","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b285b76e-1ffe-4dbf-9be9-3ab5220cbdca","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240609.0946243} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1388,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.326421,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8d44a930-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8d44a930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8d44a930-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/2c73c7af-21e0-4296-aa47-cab246b48667/signaling 200 7ms","method":"POST","requestID":"8d44a930-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/devices/2c73c7af-21e0-4296-aa47-cab246b48667/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8d4608c0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc7ee4521-6105-4be2-9808-2a5798273e75': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc7ee4521-6105-4be2-9808-2a5798273e75","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"a9d3b043-6d30-49cd-b28b-17d33fd3fcab","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240609.1020823} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0c710272-87ba-464a-b757-ee2616f1440c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240609.102171} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"dd16337b2379f72a943a56808779a015","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1389,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:49Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55189854-f89d-4220-bcc3-902df9e4ad12","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e9039b35-42f8-4a60-a400-3095ef5d6e73","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240609.1042914} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1389,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.289475,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8d4608c0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8d4608c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8d4608c0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/55189854-f89d-4220-bcc3-902df9e4ad12/signaling 200 8ms","method":"POST","requestID":"8d4608c0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/55189854-f89d-4220-bcc3-902df9e4ad12/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/c7ee4521-6105-4be2-9808-2a5798273e75","requestID":"dd16337b2379f72a943a56808779a015"} gateway-1 | {"time_local":"18/Jun/2025:09:56:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/c7ee4521-6105-4be2-9808-2a5798273e75 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.229","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dd16337b2379f72a943a56808779a015"} experiment-1 | {"level":"info","message":"DELETE /experiments/c7ee4521-6105-4be2-9808-2a5798273e75 204 201ms","method":"DELETE","requestID":"dd16337b2379f72a943a56808779a015","responseTime":201,"status":204,"url":"/experiments/c7ee4521-6105-4be2-9808-2a5798273e75"} gateway-1 | {"time_local":"18/Jun/2025:09:56:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1644","request_time":"2.208","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"f3108635df72d0bdef20918c1341d6a0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 156ms","method":"POST","requestID":"2ceed5b541a208cb53d587856fb192ea","responseTime":156,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.183","http_referrer":"","http_user_agent":"node-fetch","requestID":"2ceed5b541a208cb53d587856fb192ea"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 157ms","method":"POST","requestID":"5e237340395a1d0ad1f060dca902adc8","responseTime":157,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.184","http_referrer":"","http_user_agent":"node-fetch","requestID":"5e237340395a1d0ad1f060dca902adc8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOX0.fpAkfeQfJCf9iVu1IiDDoqAQa5UJi2AF-HGbjMLbAPo","level":"info","message":"auth send jwt","requestID":"db68937ab5bef0b0743a62594bd99ee6"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"db68937ab5bef0b0743a62594bd99ee6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"db68937ab5bef0b0743a62594bd99ee6"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1390,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:49Z"} gateway-1 | {"time_local":"18/Jun/2025:09:56:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1969","request_time":"0.820","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c4f452bb41c37a0f926b51ddc1ed1cd0"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1390,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.155319,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:49Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"db68937ab5bef0b0743a62594bd99ee6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240609,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOX0.fpAkfeQfJCf9iVu1IiDDoqAQa5UJi2AF-HGbjMLbAPo"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"db68937ab5bef0b0743a62594bd99ee6","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/2c73c7af-21e0-4296-aa47-cab246b48667' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"21113e55-ceea-4ce8-b9f4-97fd6cd0b4ad","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240609.2203019} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"db68937ab5bef0b0743a62594bd99ee6","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/55189854-f89d-4220-bcc3-902df9e4ad12' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8d8bf15a-f40e-44f5-8243-492c486b9fec","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240609.2250717} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"db68937ab5bef0b0743a62594bd99ee6","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"604ba0cc-fd9b-482b-b33a-4682933f4ece","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240609.2369752} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a3b2bef1-b5fa-4f0f-9b00-fbf20503bcb3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240609.2370439} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"db68937ab5bef0b0743a62594bd99ee6","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:49.236928590Z"}]},"request_id":"d91181c7-6707-4b05-8ede-73a692b7586c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240609.2412505} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"db68937ab5bef0b0743a62594bd99ee6","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"db68937ab5bef0b0743a62594bd99ee6"} gateway-1 | {"time_local":"18/Jun/2025:09:56:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"db68937ab5bef0b0743a62594bd99ee6"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"db68937ab5bef0b0743a62594bd99ee6","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOX0.fpAkfeQfJCf9iVu1IiDDoqAQa5UJi2AF-HGbjMLbAPo","level":"info","message":"auth send jwt","requestID":"480ad89d85613221e89bdada5e0580c1"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"480ad89d85613221e89bdada5e0580c1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"480ad89d85613221e89bdada5e0580c1"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1391,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:49Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1391,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.767456,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:49Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"480ad89d85613221e89bdada5e0580c1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240609,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYwOX0.fpAkfeQfJCf9iVu1IiDDoqAQa5UJi2AF-HGbjMLbAPo"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"480ad89d85613221e89bdada5e0580c1","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a28e2c53-afce-4fa6-a294-c5795edc542f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240609.2618074} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"480ad89d85613221e89bdada5e0580c1","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b3d45c55-414c-460b-a751-e4dad8db0123","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240609.267725} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"480ad89d85613221e89bdada5e0580c1","responseTime":6,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"cb5aa843-c131-436f-ab0c-0f9db1a2b7b0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240609.2778065} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9751dfc9-64b1-446a-8bca-f8eef6f200d9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240609.2780287} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"480ad89d85613221e89bdada5e0580c1","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:49.277759455Z"}]},"request_id":"cdb86643-2cfb-4aae-8ff5-65cdb1a83177","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240609.2839491} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"480ad89d85613221e89bdada5e0580c1","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"480ad89d85613221e89bdada5e0580c1"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"480ad89d85613221e89bdada5e0580c1","responseTime":40,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"480ad89d85613221e89bdada5e0580c1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMH0.0eCnhhQTpEpSYwJCIy7_R3tpRFlKRCuFSwRRLFhxBeU","level":"info","message":"auth send jwt","requestID":"34c3c7d272ce3cd5e4c5175b93b1f126"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"34c3c7d272ce3cd5e4c5175b93b1f126","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"34c3c7d272ce3cd5e4c5175b93b1f126"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1392,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:50Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1392,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.618955,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:50Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"34c3c7d272ce3cd5e4c5175b93b1f126","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240610,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMH0.0eCnhhQTpEpSYwJCIy7_R3tpRFlKRCuFSwRRLFhxBeU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"34c3c7d272ce3cd5e4c5175b93b1f126","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:49.277759455Z"}]},"request_id":"e9970614-bf73-4e4c-806c-6729c89a37d7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240610.2479444} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"34c3c7d272ce3cd5e4c5175b93b1f126","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fc73f982-f347-47e1-a918-4e57575f2a45","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240610.2514913} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"34c3c7d272ce3cd5e4c5175b93b1f126","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:49.277759455Z"}]},"request_id":"1b165048-3d36-497d-8478-8ad678891a3d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240610.2610612} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"34c3c7d272ce3cd5e4c5175b93b1f126","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"34c3c7d272ce3cd5e4c5175b93b1f126"} device-1 | {"level":"info","message":"PATCH /devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f 200 42ms","method":"PATCH","requestID":"34c3c7d272ce3cd5e4c5175b93b1f126","responseTime":42,"status":200,"url":"/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f"} gateway-1 | {"time_local":"18/Jun/2025:09:56:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.049","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"34c3c7d272ce3cd5e4c5175b93b1f126"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMH0.0eCnhhQTpEpSYwJCIy7_R3tpRFlKRCuFSwRRLFhxBeU","level":"info","message":"auth send jwt","requestID":"c30699d4b25bfbf987e618d563fea01b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c30699d4b25bfbf987e618d563fea01b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"c30699d4b25bfbf987e618d563fea01b"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1393,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:50Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1393,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.6333,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:50Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c30699d4b25bfbf987e618d563fea01b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240610,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMH0.0eCnhhQTpEpSYwJCIy7_R3tpRFlKRCuFSwRRLFhxBeU"} authorization-1 | {"level":"info","message":"POST /authorize 200 23ms","method":"POST","requestID":"c30699d4b25bfbf987e618d563fea01b","responseTime":23,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"c30699d4b25bfbf987e618d563fea01b"} device-1 | {"level":"info","message":"POST /devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f/websocket 200 34ms","method":"POST","requestID":"c30699d4b25bfbf987e618d563fea01b","responseTime":34,"status":200,"url":"/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:56:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.038","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"c30699d4b25bfbf987e618d563fea01b"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f' connected"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"86314369-e6c4-47a6-af92-8c789f5f5b27\" in room \"http://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6\"","requestID":"8b137150-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"4838fe70-baf6-4b47-aefd-5faef72f14b4\" in room \"http://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6\"","requestID":"8b13bf70-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ecb584cbb8aaabf8e714def819ef26a9","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ecb584cbb8aaabf8e714def819ef26a9","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/4e643a68-da68-44f5-a7b1-9e51e9662674/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ecb584cbb8aaabf8e714def819ef26a9"} device-1 | {"level":"info","message":"OPTIONS /devices/4e643a68-da68-44f5-a7b1-9e51e9662674/websocket 200 1ms","method":"OPTIONS","requestID":"ecb584cbb8aaabf8e714def819ef26a9","responseTime":1,"status":200,"url":"/devices/4e643a68-da68-44f5-a7b1-9e51e9662674/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA","level":"info","message":"auth send jwt","requestID":"13202c86d3fbba362269885ac6d03869"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"13202c86d3fbba362269885ac6d03869","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"13202c86d3fbba362269885ac6d03869"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1394,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1394,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.309016,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"13202c86d3fbba362269885ac6d03869","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240611,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"13202c86d3fbba362269885ac6d03869","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"13202c86d3fbba362269885ac6d03869"} device-1 | {"level":"info","message":"POST /devices/4e643a68-da68-44f5-a7b1-9e51e9662674/websocket 200 16ms","method":"POST","requestID":"13202c86d3fbba362269885ac6d03869","responseTime":16,"status":200,"url":"/devices/4e643a68-da68-44f5-a7b1-9e51e9662674/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:56:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4e643a68-da68-44f5-a7b1-9e51e9662674/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.022","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"13202c86d3fbba362269885ac6d03869"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"abaad85cd606db9a1988aad01d75e2dd","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"abaad85cd606db9a1988aad01d75e2dd","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/4e643a68-da68-44f5-a7b1-9e51e9662674? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"abaad85cd606db9a1988aad01d75e2dd"} device-1 | {"level":"info","message":"OPTIONS /devices/4e643a68-da68-44f5-a7b1-9e51e9662674? 200 1ms","method":"OPTIONS","requestID":"abaad85cd606db9a1988aad01d75e2dd","responseTime":1,"status":200,"url":"/devices/4e643a68-da68-44f5-a7b1-9e51e9662674?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA","level":"info","message":"auth send jwt","requestID":"189c252de50fc8af35ff2f11ec752aac"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"189c252de50fc8af35ff2f11ec752aac","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"189c252de50fc8af35ff2f11ec752aac"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1395,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1395,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.895708,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"189c252de50fc8af35ff2f11ec752aac","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240611,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"189c252de50fc8af35ff2f11ec752aac","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:49.236928590Z"}]},"request_id":"71fbebe9-8b7b-4f7e-a2c6-262e0c7f3deb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240611.6496818} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"189c252de50fc8af35ff2f11ec752aac","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4ccf5404-66a5-4e20-b06c-027c224eb2ad","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240611.6539853} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"189c252de50fc8af35ff2f11ec752aac","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:49.236928590Z"}]},"request_id":"8e56519d-a087-4c7c-91ac-8a2f01a85a32","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240611.6630487} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"189c252de50fc8af35ff2f11ec752aac","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"189c252de50fc8af35ff2f11ec752aac"} gateway-1 | {"time_local":"18/Jun/2025:09:56:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/4e643a68-da68-44f5-a7b1-9e51e9662674? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.026","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"189c252de50fc8af35ff2f11ec752aac"} device-1 | {"level":"info","message":"PATCH /devices/4e643a68-da68-44f5-a7b1-9e51e9662674? 200 22ms","method":"PATCH","requestID":"189c252de50fc8af35ff2f11ec752aac","responseTime":22,"status":200,"url":"/devices/4e643a68-da68-44f5-a7b1-9e51e9662674?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA","level":"info","message":"auth send jwt","requestID":"d9f054cc082567fb49758b2481b032d8"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d9f054cc082567fb49758b2481b032d8","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d9f054cc082567fb49758b2481b032d8"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1396,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1396,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.753189,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d9f054cc082567fb49758b2481b032d8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240611,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"d9f054cc082567fb49758b2481b032d8","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:49.236928590Z"}]},"request_id":"0b2195b9-1826-4564-940f-edd3c8240f12","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240611.680398} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d9f054cc082567fb49758b2481b032d8","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d9f054cc082567fb49758b2481b032d8"} gateway-1 | {"time_local":"18/Jun/2025:09:56:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4e643a68-da68-44f5-a7b1-9e51e9662674? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d9f054cc082567fb49758b2481b032d8"} device-1 | {"level":"info","message":"GET /devices/4e643a68-da68-44f5-a7b1-9e51e9662674? 200 10ms","method":"GET","requestID":"d9f054cc082567fb49758b2481b032d8","responseTime":10,"status":200,"url":"/devices/4e643a68-da68-44f5-a7b1-9e51e9662674?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA","level":"info","message":"auth send jwt","requestID":"71b82c50637ffd19bbaa74dff7258ef7"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"71b82c50637ffd19bbaa74dff7258ef7","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"71b82c50637ffd19bbaa74dff7258ef7"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1397,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1397,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.958776,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"71b82c50637ffd19bbaa74dff7258ef7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240611,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"71b82c50637ffd19bbaa74dff7258ef7","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:49.277759455Z"}]},"request_id":"c0d5d236-def7-4036-b0e3-27a35d766891","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240611.695771} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"71b82c50637ffd19bbaa74dff7258ef7","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"71b82c50637ffd19bbaa74dff7258ef7"} gateway-1 | {"time_local":"18/Jun/2025:09:56:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"71b82c50637ffd19bbaa74dff7258ef7"} device-1 | {"level":"info","message":"GET /devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f? 200 10ms","method":"GET","requestID":"71b82c50637ffd19bbaa74dff7258ef7","responseTime":10,"status":200,"url":"/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA","level":"info","message":"auth send jwt","requestID":"274042078c2094e1589c6b8d66b3c336"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"274042078c2094e1589c6b8d66b3c336","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"274042078c2094e1589c6b8d66b3c336"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1398,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1398,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.652249,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"274042078c2094e1589c6b8d66b3c336","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240611,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"274042078c2094e1589c6b8d66b3c336","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc"},"level":"info","message":"Attempting to run experiment","requestID":"274042078c2094e1589c6b8d66b3c336"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc"},"level":"info","message":"Attempting to book experiment","requestID":"274042078c2094e1589c6b8d66b3c336"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc"},"level":"info","message":"Successfully booked experiment","requestID":"274042078c2094e1589c6b8d66b3c336"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8ed81a70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8ed84180-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1399,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1399,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.964943,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1400,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8ed81a70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240611,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8ed81a70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1400,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.521643,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8ed84180-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240611,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8ed84180-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:49.236928590Z"}]},"request_id":"7272a4d7-14f6-4c76-b7eb-40ad9d10e350","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240611.7437236} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8ed81a70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:49.277759455Z"}]},"request_id":"d2d6705f-d3a7-479b-9b52-cb2d3dfd4cff","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240611.7442367} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"8ed84180-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8ed81a70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/4e643a68-da68-44f5-a7b1-9e51e9662674? 200 12ms","method":"GET","requestID":"8ed81a70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/4e643a68-da68-44f5-a7b1-9e51e9662674?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8ed84180-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f? 200 12ms","method":"GET","requestID":"8ed84180-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc"},"level":"info","message":"Setting up experiment","requestID":"274042078c2094e1589c6b8d66b3c336"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"274042078c2094e1589c6b8d66b3c336"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"274042078c2094e1589c6b8d66b3c336"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc"},"level":"info","message":"Successfully locked booking for experiment","requestID":"274042078c2094e1589c6b8d66b3c336"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc"},"level":"info","message":"Successfully set up experiment","requestID":"274042078c2094e1589c6b8d66b3c336"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8ee19050-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8ee1b760-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc"},"level":"info","message":"Successfully running experiment","requestID":"274042078c2094e1589c6b8d66b3c336"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1401,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1401,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.128292,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1402,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8ee19050-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240611,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8ee19050-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1402,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.825333,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8ee1b760-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240611,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"8ee1b760-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:49.236928590Z"}]},"request_id":"845ade22-3412-4c3e-bf66-42961101a5ba","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240611.831097} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8ee19050-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:49.277759455Z"}]},"request_id":"3609b4b3-19f6-423b-83f4-879afd37345c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240611.8317857} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8ee1b760-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc9d97e5a-fc59-4b4f-b8c5-f95c516447fc#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc9d97e5a-fc59-4b4f-b8c5-f95c516447fc","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"4241d2af-05d4-4762-b6d4-5e579844471e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240611.8358712} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a13e6551-59de-4727-93a3-311e5f5b810f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240611.8360252} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8ee19050-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"274042078c2094e1589c6b8d66b3c336","responseTime":35,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"GET /devices/4e643a68-da68-44f5-a7b1-9e51e9662674? 200 40ms","method":"GET","requestID":"8ee19050-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":40,"status":200,"url":"/devices/4e643a68-da68-44f5-a7b1-9e51e9662674?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8ee1b760-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f? 200 40ms","method":"GET","requestID":"8ee1b760-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":40,"status":200,"url":"/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8ee86e20-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"274042078c2094e1589c6b8d66b3c336"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1403,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:51Z"} gateway-1 | {"time_local":"18/Jun/2025:09:56:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1216","request_time":"0.144","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"274042078c2094e1589c6b8d66b3c336"} experiment-1 | {"level":"info","message":"POST /experiments? 201 138ms","method":"POST","requestID":"274042078c2094e1589c6b8d66b3c336","responseTime":138,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0a104dec-d1c3-407c-af9d-7ef2d0d56f36","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240611.846072} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1403,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.638056,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8ee86e20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8ee86e20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA","level":"info","message":"auth send jwt","requestID":"2d538252409776a3d03abad620da3c15"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"2d538252409776a3d03abad620da3c15","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2d538252409776a3d03abad620da3c15"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8ee86e20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4e643a68-da68-44f5-a7b1-9e51e9662674/signaling 200 33ms","method":"POST","requestID":"8ee86e20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/4e643a68-da68-44f5-a7b1-9e51e9662674/signaling"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1404,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1404,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.95711,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:51Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8eedc550-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2d538252409776a3d03abad620da3c15","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240611,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2d538252409776a3d03abad620da3c15","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1405,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:49.236928590Z"}]},"request_id":"88959113-0db2-4b05-90b6-0468c05f866f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240611.8818245} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2d538252409776a3d03abad620da3c15","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b3163e02-9276-4642-9899-11bd0d6b85d2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240611.8822904} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1405,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.692918,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8eedc550-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8eedc550-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2d538252409776a3d03abad620da3c15"} gateway-1 | {"time_local":"18/Jun/2025:09:56:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4e643a68-da68-44f5-a7b1-9e51e9662674? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2d538252409776a3d03abad620da3c15"} device-1 | {"level":"info","message":"GET /devices/4e643a68-da68-44f5-a7b1-9e51e9662674? 200 12ms","method":"GET","requestID":"2d538252409776a3d03abad620da3c15","responseTime":12,"status":200,"url":"/devices/4e643a68-da68-44f5-a7b1-9e51e9662674?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8eedc550-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f/signaling 200 10ms","method":"POST","requestID":"8eedc550-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"274042078c2094e1589c6b8d66b3c336"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8eef9a10-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA","level":"info","message":"auth send jwt","requestID":"8a004cd3b3f5221862fd2f8bbefc859c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8a004cd3b3f5221862fd2f8bbefc859c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8eefc120-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8a004cd3b3f5221862fd2f8bbefc859c"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1406,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1406,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.697397,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1407,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8eef9a10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240611,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8eef9a10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1407,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.264426,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8eefc120-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240611,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8eefc120-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1408,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1408,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.813896,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8a004cd3b3f5221862fd2f8bbefc859c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240611,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA"} authorization-1 | {"level":"info","message":"POST /authorize 200 32ms","method":"POST","requestID":"8a004cd3b3f5221862fd2f8bbefc859c","responseTime":32,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:49.277759455Z"}]},"request_id":"5807801f-059b-436b-b40e-d90e784f83c6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240611.9228919} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:49.236928590Z"}]},"request_id":"fe927e36-14df-4fcd-9d43-e7b5760fdc09","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240611.9234967} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8eefc120-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8eef9a10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:49.277759455Z"}]},"request_id":"0f9a9a1b-d775-41fb-aaf7-39255af10f8f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240611.9267855} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"8a004cd3b3f5221862fd2f8bbefc859c","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8eefc120-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f? 200 39ms","method":"GET","requestID":"8eefc120-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":200,"url":"/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8eef9a10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/4e643a68-da68-44f5-a7b1-9e51e9662674? 200 40ms","method":"GET","requestID":"8eef9a10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":40,"status":200,"url":"/devices/4e643a68-da68-44f5-a7b1-9e51e9662674?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8a004cd3b3f5221862fd2f8bbefc859c"} device-1 | {"level":"info","message":"GET /devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f? 200 40ms","method":"GET","requestID":"8a004cd3b3f5221862fd2f8bbefc859c","responseTime":40,"status":200,"url":"/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8a004cd3b3f5221862fd2f8bbefc859c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc"},"level":"info","message":"Building connection plan","requestID":"274042078c2094e1589c6b8d66b3c336"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"47dd48d9-cf1f-472a-9978-1a698b7e97a6"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"78cd46cd-632f-4f0d-82b2-e6a88d9b7e46"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"d394b265-8a17-4479-89fc-bff61a58c01c"}]},"level":"info","message":"Built pairwise service configurations","requestID":"274042078c2094e1589c6b8d66b3c336"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"8ef629c0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"8ef629c0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"POST /rooms 201 0ms","method":"POST","requestID":"8ef629c0-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":0,"status":201,"url":"/rooms"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda?id=6f45b8a0-15ed-40a9-bf20-c4c69cf2afc3","ws://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda?id=d23834ca-86fe-4a86-afa9-f0b949082017"]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"274042078c2094e1589c6b8d66b3c336"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"8ef69ef0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1409,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1409,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.70529,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:51Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8ef69ef0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240611,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMX0.n5KlD4zctKVyWMopPhuAhNXXCrzT6wjaRFvIWGrGjJA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8ef69ef0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"b289a0c0-23e4-41d7-8571-2cd0d0019cef","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240611.944961} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d1b1f27b-c18f-40dc-9dd9-cf6cd850dadf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240611.9452536} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"8ef69ef0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"8ef69ef0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"8ef69ef0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/3e713f40-f81d-4fe8-9b83-4cae435f835e'","requestID":"8ef69ef0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/3e713f40-f81d-4fe8-9b83-4cae435f835e'","requestID":"8ef69ef0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"8ef69ef0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 46ms","method":"POST","requestID":"8ef69ef0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":46,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"8ef69ef0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/3e713f40-f81d-4fe8-9b83-4cae435f835e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"3e713f40-f81d-4fe8-9b83-4cae435f835e","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"8eff0360-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6f45b8a0-15ed-40a9-bf20-c4c69cf2afc3\" in room \"http://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda\"","requestID":"8eff0360-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"8eff0360-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f5c373c1b0d3e604aee49074ae854b91","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"f5c373c1b0d3e604aee49074ae854b91","responseTime":26,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"8f032210-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"d23834ca-86fe-4a86-afa9-f0b949082017\" in room \"http://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda\"","requestID":"8f032210-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"8f032210-4c2a-11f0-b702-8b8a85c3ad9a"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/3e713f40-f81d-4fe8-9b83-4cae435f835e"}}},"level":"info","message":"received a callback","requestID":"f5c373c1b0d3e604aee49074ae854b91"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6f45b8a0-15ed-40a9-bf20-c4c69cf2afc3\" in room \"http://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6f45b8a0-15ed-40a9-bf20-c4c69cf2afc3\" in room \"http://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6f45b8a0-15ed-40a9-bf20-c4c69cf2afc3\" in room \"http://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6f45b8a0-15ed-40a9-bf20-c4c69cf2afc3\" in room \"http://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6f45b8a0-15ed-40a9-bf20-c4c69cf2afc3\" in room \"http://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6f45b8a0-15ed-40a9-bf20-c4c69cf2afc3\" in room \"http://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"6f45b8a0-15ed-40a9-bf20-c4c69cf2afc3\" in room \"http://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"6f45b8a0-15ed-40a9-bf20-c4c69cf2afc3\" in room \"http://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda\""} device-1 | {"data":{"peerconnection":"3e713f40-f81d-4fe8-9b83-4cae435f835e","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"f5c373c1b0d3e604aee49074ae854b91","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch","requestID":"f5c373c1b0d3e604aee49074ae854b91"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"274042078c2094e1589c6b8d66b3c336"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8f065660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"data":{"peerconnection":"3e713f40-f81d-4fe8-9b83-4cae435f835e","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1410,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a0e544b8-82d5-4c65-8d12-d4e91e2d2765","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.0659196} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1410,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.53063,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8f065660-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"8f065660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/3e713f40-f81d-4fe8-9b83-4cae435f835e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"3e713f40-f81d-4fe8-9b83-4cae435f835e","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8f065660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4e643a68-da68-44f5-a7b1-9e51e9662674/signaling 200 39ms","method":"POST","requestID":"8f065660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":200,"url":"/devices/4e643a68-da68-44f5-a7b1-9e51e9662674/signaling"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"424f88287399f95db408b29a2e2a0b3c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"424f88287399f95db408b29a2e2a0b3c","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8f0c97f0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/3e713f40-f81d-4fe8-9b83-4cae435f835e"}}},"level":"info","message":"received a callback","requestID":"424f88287399f95db408b29a2e2a0b3c"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1411,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"56e1f957-cd95-48fe-857e-1fa50375b58f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.083093} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1411,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.404939,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:52Z"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"8f0d3430-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8f0c97f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8f0c97f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1412,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:52Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8f0c97f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f/signaling 200 8ms","method":"POST","requestID":"8f0c97f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3e713f40-f81d-4fe8-9b83-4cae435f835e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"575df89f-df22-4d66-80a5-a136b27a1d59","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.0882967} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1412,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":26.41741,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/3e713f40-f81d-4fe8-9b83-4cae435f835e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8f0d3430-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/3e713f40-f81d-4fe8-9b83-4cae435f835e","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"8f0d3430-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"8f0d3430-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/3e713f40-f81d-4fe8-9b83-4cae435f835e 200 35ms","method":"GET","requestID":"8f0d3430-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/peerconnections/3e713f40-f81d-4fe8-9b83-4cae435f835e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMn0.kmEqlwB9827nNRgHpcck_Z5sFLu6SSuxNFfCaB7fyLs","level":"info","message":"auth send jwt","requestID":"85505370759d7094c79f616ea2ee816a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"85505370759d7094c79f616ea2ee816a","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc","requestID":"85505370759d7094c79f616ea2ee816a"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1413,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1413,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.968493,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"85505370759d7094c79f616ea2ee816a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240612,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMn0.kmEqlwB9827nNRgHpcck_Z5sFLu6SSuxNFfCaB7fyLs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"85505370759d7094c79f616ea2ee816a","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 81ms","method":"POST","requestID":"424f88287399f95db408b29a2e2a0b3c","responseTime":81,"status":200,"url":"/callbacks/experiment"} forwarding-1 | {"level":"info","message":"Participant \"b39b68cb-245c-47bf-a578-cd960c90b15e\" in room \"http://localhost/rooms/ee2d73d5-b55e-4d50-bfd8-36561e7750b2\" did not answer hearbeat check, closing connection","requestID":"891f4270-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"5c8a180f-5a8d-447d-8d9f-fc503dddb0c5\" in room \"http://localhost/rooms/ee2d73d5-b55e-4d50-bfd8-36561e7750b2\" did not answer hearbeat check, closing connection","requestID":"891f6980-4c2a-11f0-b702-8b8a85c3ad9a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8f191b10-4c2a-11f0-a085-a5c7b3a0c4e5"} gateway-1 | {"time_local":"18/Jun/2025:09:56:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.087","http_referrer":"","http_user_agent":"node-fetch","requestID":"424f88287399f95db408b29a2e2a0b3c"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1414,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"75516a6d-32c1-48e8-9f2f-6541a07b89f0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.1661496} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1414,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.564883,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8f191b10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8f191b10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc","requestID":"85505370759d7094c79f616ea2ee816a"} gateway-1 | {"time_local":"18/Jun/2025:09:56:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc HTTP/1.1","status": "200","body_bytes_sent":"1289","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"85505370759d7094c79f616ea2ee816a"} experiment-1 | {"level":"info","message":"GET /experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc 200 42ms","method":"GET","requestID":"85505370759d7094c79f616ea2ee816a","responseTime":42,"status":200,"url":"/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8f191b10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f/signaling 200 10ms","method":"POST","requestID":"8f191b10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMn0.kmEqlwB9827nNRgHpcck_Z5sFLu6SSuxNFfCaB7fyLs","level":"info","message":"auth send jwt","requestID":"3a912e1e85f32d9c2ddc670a52d87624"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8f1aefd0-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3a912e1e85f32d9c2ddc670a52d87624","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc","requestID":"3a912e1e85f32d9c2ddc670a52d87624"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1415,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1416,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1416,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.59168,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3a912e1e85f32d9c2ddc670a52d87624","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240612,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMn0.kmEqlwB9827nNRgHpcck_Z5sFLu6SSuxNFfCaB7fyLs"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"3a912e1e85f32d9c2ddc670a52d87624","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2014b812-5701-48f5-aadb-3ff5d63c2f9f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.1776237} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1415,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.269616,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8f1aefd0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"8f1aefd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8f1aefd0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4e643a68-da68-44f5-a7b1-9e51e9662674/signaling 200 9ms","method":"POST","requestID":"8f1aefd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/4e643a68-da68-44f5-a7b1-9e51e9662674/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc"},"level":"info","message":"Attempting to finish experiment","requestID":"3a912e1e85f32d9c2ddc670a52d87624"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"8f1c7670-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1417,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1417,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.087012,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/3e713f40-f81d-4fe8-9b83-4cae435f835e","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8f1c7670-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/3e713f40-f81d-4fe8-9b83-4cae435f835e","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240612,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMn0.kmEqlwB9827nNRgHpcck_Z5sFLu6SSuxNFfCaB7fyLs"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"8f1c7670-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:56:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda?id=6f45b8a0-15ed-40a9-bf20-c4c69cf2afc3 HTTP/1.1","status": "101","body_bytes_sent":"872","request_time":"0.227","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"15741382606828075561f7d8ef024adc"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"6f45b8a0-15ed-40a9-bf20-c4c69cf2afc3\" in room \"http://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"6f45b8a0-15ed-40a9-bf20-c4c69cf2afc3\" from room \"http://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda\", code: 1006, reason: "} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/3e713f40-f81d-4fe8-9b83-4cae435f835e' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/3e713f40-f81d-4fe8-9b83-4cae435f835e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"3e713f40-f81d-4fe8-9b83-4cae435f835e","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} gateway-1 | {"time_local":"18/Jun/2025:09:56:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda?id=d23834ca-86fe-4a86-afa9-f0b949082017 HTTP/1.1","status": "101","body_bytes_sent":"2","request_time":"0.226","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2e1b15ad2f6968ad822714d4c59599f4"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"d23834ca-86fe-4a86-afa9-f0b949082017\" in room \"http://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"d23834ca-86fe-4a86-afa9-f0b949082017\" from room \"http://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda\", code: 1005, reason: "} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/3e713f40-f81d-4fe8-9b83-4cae435f835e","device":"4e643a68-da68-44f5-a7b1-9e51e9662674","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"1c5f893f6296e7c80df724dcb9d22f66","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1c5f893f6296e7c80df724dcb9d22f66","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3e713f40-f81d-4fe8-9b83-4cae435f835e': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3e713f40-f81d-4fe8-9b83-4cae435f835e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"a7c12839-5484-454a-8f18-7c0fadd30eb9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.2214062} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"29db8292132f00fae064e947bc237f4b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7a68c2ca-8ecd-4e3a-978c-fd7c91f2112f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.221914} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/3e713f40-f81d-4fe8-9b83-4cae435f835e"}}},"level":"info","message":"received a callback","requestID":"1c5f893f6296e7c80df724dcb9d22f66"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"29db8292132f00fae064e947bc237f4b","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"8f1c7670-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/3e713f40-f81d-4fe8-9b83-4cae435f835e"}}},"level":"info","message":"received a callback","requestID":"29db8292132f00fae064e947bc237f4b"} device-1 | {"data":{"peerconnection":"3e713f40-f81d-4fe8-9b83-4cae435f835e","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"8f1c7670-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/3e713f40-f81d-4fe8-9b83-4cae435f835e 204 79ms","method":"DELETE","requestID":"8f1c7670-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":79,"status":204,"url":"/peerconnections/3e713f40-f81d-4fe8-9b83-4cae435f835e"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc"},"level":"info","message":"Successfully finished experiment","requestID":"3a912e1e85f32d9c2ddc670a52d87624"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8f2aa740-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1418,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6c3f52e3-e38b-467e-aaad-dc2b3027495d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.2798877} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1418,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.466708,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8f2aa740-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8f2aa740-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8f2aa740-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f/signaling 200 7ms","method":"POST","requestID":"8f2aa740-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"8f2fd760-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc9d97e5a-fc59-4b4f-b8c5-f95c516447fc': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc9d97e5a-fc59-4b4f-b8c5-f95c516447fc","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"c179c158-733e-45de-81b1-f3c57e6382dd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.3107166} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"248e7546-4505-4665-83e5-8351c8682738","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.310896} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"3a912e1e85f32d9c2ddc670a52d87624","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1419,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4e643a68-da68-44f5-a7b1-9e51e9662674","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"83949750-328b-4867-832c-f7a841baf1ca","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.3150923} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1419,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.858766,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8f2fd760-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8f2fd760-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"8f2fd760-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/4e643a68-da68-44f5-a7b1-9e51e9662674/signaling 200 9ms","method":"POST","requestID":"8f2fd760-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/4e643a68-da68-44f5-a7b1-9e51e9662674/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc","requestID":"3a912e1e85f32d9c2ddc670a52d87624"} gateway-1 | {"time_local":"18/Jun/2025:09:56:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.235","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3a912e1e85f32d9c2ddc670a52d87624"} experiment-1 | {"level":"info","message":"DELETE /experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc 204 232ms","method":"DELETE","requestID":"3a912e1e85f32d9c2ddc670a52d87624","responseTime":232,"status":204,"url":"/experiments/c9d97e5a-fc59-4b4f-b8c5-f95c516447fc"} gateway-1 | {"time_local":"18/Jun/2025:09:56:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1644","request_time":"2.104","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"f7e8f007e0e93bffed36efa9f78b0ed8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 186ms","method":"POST","requestID":"1c5f893f6296e7c80df724dcb9d22f66","responseTime":186,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.189","http_referrer":"","http_user_agent":"node-fetch","requestID":"1c5f893f6296e7c80df724dcb9d22f66"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 186ms","method":"POST","requestID":"29db8292132f00fae064e947bc237f4b","responseTime":186,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.189","http_referrer":"","http_user_agent":"node-fetch","requestID":"29db8292132f00fae064e947bc237f4b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMn0.kmEqlwB9827nNRgHpcck_Z5sFLu6SSuxNFfCaB7fyLs","level":"info","message":"auth send jwt","requestID":"7aea5aabab0cf2e6b2213aa762130f1e"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7aea5aabab0cf2e6b2213aa762130f1e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"7aea5aabab0cf2e6b2213aa762130f1e"} gateway-1 | {"time_local":"18/Jun/2025:09:56:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1969","request_time":"0.796","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a52131b5f2b547da8617abef4e30d47e"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1420,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1420,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.817557,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7aea5aabab0cf2e6b2213aa762130f1e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240612,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMn0.kmEqlwB9827nNRgHpcck_Z5sFLu6SSuxNFfCaB7fyLs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"7aea5aabab0cf2e6b2213aa762130f1e","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/b5063760-d696-4a1b-ab7b-7ae8f1ba3d6f' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"43f1d527-9c2c-4554-a194-01a3d28f9fb9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.433864} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"7aea5aabab0cf2e6b2213aa762130f1e","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f627285e-5f54-4587-a29e-d9f7392bd2f0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.437992} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"7aea5aabab0cf2e6b2213aa762130f1e","responseTime":3,"status":200,"url":"/relations/update"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/4e643a68-da68-44f5-a7b1-9e51e9662674' closed"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"e26894b1-867f-429f-82ee-56dab5a1e61c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.447434} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"232b6f03-efd0-4d3b-b5b9-70aa110af581","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.4476833} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"7aea5aabab0cf2e6b2213aa762130f1e","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:52.447401365Z"}]},"request_id":"58b2d1a9-0f33-41ee-b9ec-9600d6f9fca2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.451377} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"7aea5aabab0cf2e6b2213aa762130f1e","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"7aea5aabab0cf2e6b2213aa762130f1e"} gateway-1 | {"time_local":"18/Jun/2025:09:56:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7aea5aabab0cf2e6b2213aa762130f1e"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"7aea5aabab0cf2e6b2213aa762130f1e","responseTime":40,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMn0.kmEqlwB9827nNRgHpcck_Z5sFLu6SSuxNFfCaB7fyLs","level":"info","message":"auth send jwt","requestID":"fc2c4b5c9896ee0939634e43aefa37dc"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"fc2c4b5c9896ee0939634e43aefa37dc","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"fc2c4b5c9896ee0939634e43aefa37dc"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1421,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1421,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.710415,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"fc2c4b5c9896ee0939634e43aefa37dc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240612,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxMn0.kmEqlwB9827nNRgHpcck_Z5sFLu6SSuxNFfCaB7fyLs"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"fc2c4b5c9896ee0939634e43aefa37dc","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"43d88324-0791-467b-bf80-f9897195bd54","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.4723227} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"fc2c4b5c9896ee0939634e43aefa37dc","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fe09ea57-4a82-45b1-9d60-bcaf197b94a8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.478267} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"fc2c4b5c9896ee0939634e43aefa37dc","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"8e01ccb6-6f10-439d-880e-52c40997224f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.506128} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e772ae41-cb9d-4f44-88e7-5d69729fc2ef","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.5063705} authorization-1 | {"level":"info","message":"POST /relations/update 200 31ms","method":"POST","requestID":"fc2c4b5c9896ee0939634e43aefa37dc","responseTime":31,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:52.506081925Z"}]},"request_id":"0294d712-73d1-4b74-b6c2-782bcd65c24e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240612.5093515} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"fc2c4b5c9896ee0939634e43aefa37dc","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"fc2c4b5c9896ee0939634e43aefa37dc"} device-1 | {"level":"info","message":"POST /devices? 201 53ms","method":"POST","requestID":"fc2c4b5c9896ee0939634e43aefa37dc","responseTime":53,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.056","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fc2c4b5c9896ee0939634e43aefa37dc"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxM30.9YrEO9vpfzTAxSzFn2zSqV6G2S4QHeZ6BNHNVMi0jvg","level":"info","message":"auth send jwt","requestID":"8f902b786e37c810c27e4a23df0691dd"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8f902b786e37c810c27e4a23df0691dd","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"8f902b786e37c810c27e4a23df0691dd"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1422,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:53Z"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1422,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.734936,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:53Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"8f902b786e37c810c27e4a23df0691dd","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240613,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxM30.9YrEO9vpfzTAxSzFn2zSqV6G2S4QHeZ6BNHNVMi0jvg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8f902b786e37c810c27e4a23df0691dd","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:52.447401365Z"}]},"request_id":"663844a5-dda7-422c-902f-e8e6540264ff","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240613.4703307} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8f902b786e37c810c27e4a23df0691dd","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5cde588b-a2d8-4138-b697-f8dd1f17e9b2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240613.474175} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"8f902b786e37c810c27e4a23df0691dd","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:52.447401365Z"}]},"request_id":"79f80d81-f61b-4d2a-a649-a7e758bd7b69","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240613.5085154} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"8f902b786e37c810c27e4a23df0691dd","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"8f902b786e37c810c27e4a23df0691dd"} device-1 | {"level":"info","message":"PATCH /devices/0dd6480c-d14f-4af3-9193-72acd33af3c4 200 48ms","method":"PATCH","requestID":"8f902b786e37c810c27e4a23df0691dd","responseTime":48,"status":200,"url":"/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4"} gateway-1 | {"time_local":"18/Jun/2025:09:56:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/0dd6480c-d14f-4af3-9193-72acd33af3c4 HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.052","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"8f902b786e37c810c27e4a23df0691dd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxM30.9YrEO9vpfzTAxSzFn2zSqV6G2S4QHeZ6BNHNVMi0jvg","level":"info","message":"auth send jwt","requestID":"651f4132d4f743f396b49436c658ec38"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"651f4132d4f743f396b49436c658ec38","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"651f4132d4f743f396b49436c658ec38"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1423,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:53Z"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1423,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.687897,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:53Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"651f4132d4f743f396b49436c658ec38","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240613,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxM30.9YrEO9vpfzTAxSzFn2zSqV6G2S4QHeZ6BNHNVMi0jvg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"651f4132d4f743f396b49436c658ec38","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"651f4132d4f743f396b49436c658ec38"} device-1 | {"level":"info","message":"POST /devices/0dd6480c-d14f-4af3-9193-72acd33af3c4/websocket 200 13ms","method":"POST","requestID":"651f4132d4f743f396b49436c658ec38","responseTime":13,"status":200,"url":"/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:56:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0dd6480c-d14f-4af3-9193-72acd33af3c4/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.016","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"651f4132d4f743f396b49436c658ec38"} device-1 | {"level":"info","message":"device 'http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4' connected"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"e009434c-8e5e-4f6b-b429-22cdfec9ef00\" in room \"http://localhost/rooms/6367efa6-a9f9-4046-992a-6d6a06903589\"","requestID":"8d1b2830-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"4a5f6479-539b-44b6-999b-3b420ac459c5\" in room \"http://localhost/rooms/6367efa6-a9f9-4046-992a-6d6a06903589\"","requestID":"8d1b9d60-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"831fc241b9719838e8f0bcdd9dff6a25","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"831fc241b9719838e8f0bcdd9dff6a25","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/cd430066-85a5-448e-ad72-152fcaf139f5/websocket 200 1ms","method":"OPTIONS","requestID":"831fc241b9719838e8f0bcdd9dff6a25","responseTime":1,"status":200,"url":"/devices/cd430066-85a5-448e-ad72-152fcaf139f5/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:56:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/cd430066-85a5-448e-ad72-152fcaf139f5/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"831fc241b9719838e8f0bcdd9dff6a25"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNH0.m3ViVbSUIWLklR7HwMwsRRHKXo2Dd1DQgNy7ht0VTtc","level":"info","message":"auth send jwt","requestID":"79190da24460a6aa215967cad4aba97d"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"79190da24460a6aa215967cad4aba97d","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"79190da24460a6aa215967cad4aba97d"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1424,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:54Z"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1424,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.304825,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"79190da24460a6aa215967cad4aba97d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240614,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNH0.m3ViVbSUIWLklR7HwMwsRRHKXo2Dd1DQgNy7ht0VTtc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"79190da24460a6aa215967cad4aba97d","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"79190da24460a6aa215967cad4aba97d"} gateway-1 | {"time_local":"18/Jun/2025:09:56:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/cd430066-85a5-448e-ad72-152fcaf139f5/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.027","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"79190da24460a6aa215967cad4aba97d"} device-1 | {"level":"info","message":"POST /devices/cd430066-85a5-448e-ad72-152fcaf139f5/websocket 200 22ms","method":"POST","requestID":"79190da24460a6aa215967cad4aba97d","responseTime":22,"status":200,"url":"/devices/cd430066-85a5-448e-ad72-152fcaf139f5/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e60037919ad321a27815792e2b4a6cb9","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e60037919ad321a27815792e2b4a6cb9","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/cd430066-85a5-448e-ad72-152fcaf139f5? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e60037919ad321a27815792e2b4a6cb9"} device-1 | {"level":"info","message":"OPTIONS /devices/cd430066-85a5-448e-ad72-152fcaf139f5? 200 1ms","method":"OPTIONS","requestID":"e60037919ad321a27815792e2b4a6cb9","responseTime":1,"status":200,"url":"/devices/cd430066-85a5-448e-ad72-152fcaf139f5?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNH0.m3ViVbSUIWLklR7HwMwsRRHKXo2Dd1DQgNy7ht0VTtc","level":"info","message":"auth send jwt","requestID":"c1b1da621f9cef5df5a64607e3f9142e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c1b1da621f9cef5df5a64607e3f9142e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"c1b1da621f9cef5df5a64607e3f9142e"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1425,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:54Z"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1425,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.925371,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c1b1da621f9cef5df5a64607e3f9142e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240614,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNH0.m3ViVbSUIWLklR7HwMwsRRHKXo2Dd1DQgNy7ht0VTtc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c1b1da621f9cef5df5a64607e3f9142e","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:52.506081925Z"}]},"request_id":"16fcfc79-a9d3-4ea5-8fb5-9e4d35110b93","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240614.9259686} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"c1b1da621f9cef5df5a64607e3f9142e","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9b553616-4ecb-40be-b985-7a59b204ae70","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240614.9301832} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"c1b1da621f9cef5df5a64607e3f9142e","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:52.506081925Z"}]},"request_id":"9e414a66-7183-4130-99e3-5dc1784e95d3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240614.940953} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c1b1da621f9cef5df5a64607e3f9142e","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"c1b1da621f9cef5df5a64607e3f9142e"} gateway-1 | {"time_local":"18/Jun/2025:09:56:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/cd430066-85a5-448e-ad72-152fcaf139f5? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.031","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c1b1da621f9cef5df5a64607e3f9142e"} device-1 | {"level":"info","message":"PATCH /devices/cd430066-85a5-448e-ad72-152fcaf139f5? 200 27ms","method":"PATCH","requestID":"c1b1da621f9cef5df5a64607e3f9142e","responseTime":27,"status":200,"url":"/devices/cd430066-85a5-448e-ad72-152fcaf139f5?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNH0.m3ViVbSUIWLklR7HwMwsRRHKXo2Dd1DQgNy7ht0VTtc","level":"info","message":"auth send jwt","requestID":"6efe31d5988000479e8ed949073ac88f"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6efe31d5988000479e8ed949073ac88f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6efe31d5988000479e8ed949073ac88f"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1426,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:54Z"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1426,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.183519,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6efe31d5988000479e8ed949073ac88f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240614,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNH0.m3ViVbSUIWLklR7HwMwsRRHKXo2Dd1DQgNy7ht0VTtc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6efe31d5988000479e8ed949073ac88f","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:52.447401365Z"}]},"request_id":"41f32976-dfc0-4b7d-a043-a819008128a0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240614.9595485} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6efe31d5988000479e8ed949073ac88f","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6efe31d5988000479e8ed949073ac88f"} device-1 | {"level":"info","message":"GET /devices/0dd6480c-d14f-4af3-9193-72acd33af3c4? 200 11ms","method":"GET","requestID":"6efe31d5988000479e8ed949073ac88f","responseTime":11,"status":200,"url":"/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0dd6480c-d14f-4af3-9193-72acd33af3c4? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6efe31d5988000479e8ed949073ac88f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNH0.m3ViVbSUIWLklR7HwMwsRRHKXo2Dd1DQgNy7ht0VTtc","level":"info","message":"auth send jwt","requestID":"5310650f08569cc6659cb7791adc8835"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5310650f08569cc6659cb7791adc8835","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5310650f08569cc6659cb7791adc8835"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1427,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:54Z"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1427,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.881393,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5310650f08569cc6659cb7791adc8835","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240614,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNH0.m3ViVbSUIWLklR7HwMwsRRHKXo2Dd1DQgNy7ht0VTtc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5310650f08569cc6659cb7791adc8835","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:52.506081925Z"}]},"request_id":"9187505e-5af0-408a-950b-de4c3393f469","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240614.9763377} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"5310650f08569cc6659cb7791adc8835","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5310650f08569cc6659cb7791adc8835"} device-1 | {"level":"info","message":"GET /devices/cd430066-85a5-448e-ad72-152fcaf139f5? 200 10ms","method":"GET","requestID":"5310650f08569cc6659cb7791adc8835","responseTime":10,"status":200,"url":"/devices/cd430066-85a5-448e-ad72-152fcaf139f5?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cd430066-85a5-448e-ad72-152fcaf139f5? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5310650f08569cc6659cb7791adc8835"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNH0.m3ViVbSUIWLklR7HwMwsRRHKXo2Dd1DQgNy7ht0VTtc","level":"info","message":"auth send jwt","requestID":"6c64465724c1e9698f02a51b92cec4d5"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6c64465724c1e9698f02a51b92cec4d5","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"6c64465724c1e9698f02a51b92cec4d5"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1428,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:54Z"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1428,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.612595,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:54Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6c64465724c1e9698f02a51b92cec4d5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240614,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNH0.m3ViVbSUIWLklR7HwMwsRRHKXo2Dd1DQgNy7ht0VTtc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6c64465724c1e9698f02a51b92cec4d5","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae"},"level":"info","message":"Attempting to run experiment","requestID":"6c64465724c1e9698f02a51b92cec4d5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae"},"level":"info","message":"Attempting to book experiment","requestID":"6c64465724c1e9698f02a51b92cec4d5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae"},"level":"info","message":"Successfully booked experiment","requestID":"6c64465724c1e9698f02a51b92cec4d5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"90d0b620-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"90d0dd30-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1429,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1429,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.644799,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1430,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"90d0b620-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240614,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNH0.m3ViVbSUIWLklR7HwMwsRRHKXo2Dd1DQgNy7ht0VTtc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"90d0b620-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1430,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.601383,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"90d0dd30-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240614,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNH0.m3ViVbSUIWLklR7HwMwsRRHKXo2Dd1DQgNy7ht0VTtc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"90d0dd30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:52.447401365Z"}]},"request_id":"6b3583b6-7deb-42ed-a27f-217253c8031d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.0488355} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"90d0b620-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:52.506081925Z"}]},"request_id":"70e93acb-4cd6-47ca-a6f1-3128a6d80c9f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.0493724} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"90d0dd30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"90d0b620-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/0dd6480c-d14f-4af3-9193-72acd33af3c4? 200 11ms","method":"GET","requestID":"90d0b620-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"90d0dd30-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/cd430066-85a5-448e-ad72-152fcaf139f5? 200 10ms","method":"GET","requestID":"90d0dd30-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/cd430066-85a5-448e-ad72-152fcaf139f5?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae"},"level":"info","message":"Setting up experiment","requestID":"6c64465724c1e9698f02a51b92cec4d5"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"6c64465724c1e9698f02a51b92cec4d5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"6c64465724c1e9698f02a51b92cec4d5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae"},"level":"info","message":"Successfully locked booking for experiment","requestID":"6c64465724c1e9698f02a51b92cec4d5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae"},"level":"info","message":"Successfully set up experiment","requestID":"6c64465724c1e9698f02a51b92cec4d5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"90da04f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"90da2c00-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae"},"level":"info","message":"Successfully running experiment","requestID":"6c64465724c1e9698f02a51b92cec4d5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1431,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1431,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.674133,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1432,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"90da04f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240614,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNH0.m3ViVbSUIWLklR7HwMwsRRHKXo2Dd1DQgNy7ht0VTtc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"90da04f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1432,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.733506,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"90da2c00-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240614,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNH0.m3ViVbSUIWLklR7HwMwsRRHKXo2Dd1DQgNy7ht0VTtc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"90da2c00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:52.447401365Z"}]},"request_id":"e9ccee68-006b-4d99-a718-ec938ea92e9d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.1112213} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"90da04f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:52.506081925Z"}]},"request_id":"b4012a10-ca44-451e-8da3-2cbfad66ec38","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.1117883} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"90da2c00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":26,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9a98b917-7403-4496-aecf-a3fe62ba689f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.139438} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"90da04f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/0dd6480c-d14f-4af3-9193-72acd33af3c4? 200 37ms","method":"GET","requestID":"90da04f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"90da2c00-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/cd430066-85a5-448e-ad72-152fcaf139f5? 200 37ms","method":"GET","requestID":"90da2c00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":37,"status":200,"url":"/devices/cd430066-85a5-448e-ad72-152fcaf139f5?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7ba174f8-1d07-466c-82ca-62e4d404dfae#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7ba174f8-1d07-466c-82ca-62e4d404dfae","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"d3f3c0aa-e806-4770-ba1b-bf9518084389","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.1418824} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"6c64465724c1e9698f02a51b92cec4d5","responseTime":35,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"90e04680-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1433,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2ede1c50-1e3a-410b-9dec-49205ce012fd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.150849} experiment-1 | {"data":{"experiment":"http://localhost/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"6c64465724c1e9698f02a51b92cec4d5"} experiment-1 | {"level":"info","message":"POST /experiments? 201 168ms","method":"POST","requestID":"6c64465724c1e9698f02a51b92cec4d5","responseTime":168,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1216","request_time":"0.172","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6c64465724c1e9698f02a51b92cec4d5"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1433,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.600601,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"90e04680-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNX0.1rL_6rbBnWucbyghCtIkp8rPQY6Ed2JcWfovG3OxLj8","level":"info","message":"auth send jwt","requestID":"b0ef5c87204a6fa7c1ff488e85bab2e5"} authorization-1 | {"level":"info","message":"POST /authorize 200 12ms","method":"POST","requestID":"90e04680-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b0ef5c87204a6fa7c1ff488e85bab2e5","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"b0ef5c87204a6fa7c1ff488e85bab2e5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"90e04680-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/0dd6480c-d14f-4af3-9193-72acd33af3c4/signaling 200 16ms","method":"POST","requestID":"90e04680-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":16,"status":200,"url":"/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4/signaling"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1434,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1434,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":25.037154,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b0ef5c87204a6fa7c1ff488e85bab2e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240615,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNX0.1rL_6rbBnWucbyghCtIkp8rPQY6Ed2JcWfovG3OxLj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"b0ef5c87204a6fa7c1ff488e85bab2e5","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"90e6af20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1435,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:52.447401365Z"}]},"request_id":"8b73ca27-1b4b-4270-bfca-06b2e8c32089","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.1900651} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"06eab4b2-8065-47c4-bb86-b9869c6dbacf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.1901944} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"b0ef5c87204a6fa7c1ff488e85bab2e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1435,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.331655,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"90e6af20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"90e6af20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"b0ef5c87204a6fa7c1ff488e85bab2e5"} gateway-1 | {"time_local":"18/Jun/2025:09:56:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0dd6480c-d14f-4af3-9193-72acd33af3c4? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b0ef5c87204a6fa7c1ff488e85bab2e5"} device-1 | {"level":"info","message":"GET /devices/0dd6480c-d14f-4af3-9193-72acd33af3c4? 200 36ms","method":"GET","requestID":"b0ef5c87204a6fa7c1ff488e85bab2e5","responseTime":36,"status":200,"url":"/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"90e6af20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/cd430066-85a5-448e-ad72-152fcaf139f5/signaling 200 9ms","method":"POST","requestID":"90e6af20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/cd430066-85a5-448e-ad72-152fcaf139f5/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"6c64465724c1e9698f02a51b92cec4d5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"90e85cd0-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNX0.1rL_6rbBnWucbyghCtIkp8rPQY6Ed2JcWfovG3OxLj8","level":"info","message":"auth send jwt","requestID":"3e0b02568a387b98e38d0580e627b003"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"90e883e0-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3e0b02568a387b98e38d0580e627b003","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3e0b02568a387b98e38d0580e627b003"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Received request.","req_id":1436,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"client_addr":"127.0.0.1:59884","level":"info","msg":"Sent response.","req_id":1436,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.701039,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1437,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"90e85cd0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240614,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNH0.m3ViVbSUIWLklR7HwMwsRRHKXo2Dd1DQgNy7ht0VTtc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"90e85cd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1437,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.870645,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1438,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1438,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.510128,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"90e883e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240614,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNH0.m3ViVbSUIWLklR7HwMwsRRHKXo2Dd1DQgNy7ht0VTtc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"90e883e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3e0b02568a387b98e38d0580e627b003","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240615,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNX0.1rL_6rbBnWucbyghCtIkp8rPQY6Ed2JcWfovG3OxLj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3e0b02568a387b98e38d0580e627b003","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:52.506081925Z"}]},"request_id":"8e3c575f-07c6-4620-aade-a2126cf73b2d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.2059233} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:52.506081925Z"}]},"request_id":"44b84fef-a914-4a7b-b406-5aa4f32cc9cf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.2065108} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"90e883e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3e0b02568a387b98e38d0580e627b003","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:52.447401365Z"}]},"request_id":"ad69c0e6-0b9f-425c-b9bd-5c17a4b26e97","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.20712} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"90e85cd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"90e883e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/cd430066-85a5-448e-ad72-152fcaf139f5? 200 38ms","method":"GET","requestID":"90e883e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":38,"status":200,"url":"/devices/cd430066-85a5-448e-ad72-152fcaf139f5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3e0b02568a387b98e38d0580e627b003"} gateway-1 | {"time_local":"18/Jun/2025:09:56:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cd430066-85a5-448e-ad72-152fcaf139f5? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3e0b02568a387b98e38d0580e627b003"} device-1 | {"level":"info","message":"GET /devices/cd430066-85a5-448e-ad72-152fcaf139f5? 200 37ms","method":"GET","requestID":"3e0b02568a387b98e38d0580e627b003","responseTime":37,"status":200,"url":"/devices/cd430066-85a5-448e-ad72-152fcaf139f5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"90e85cd0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/0dd6480c-d14f-4af3-9193-72acd33af3c4? 200 40ms","method":"GET","requestID":"90e85cd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":40,"status":200,"url":"/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae"},"level":"info","message":"Building connection plan","requestID":"6c64465724c1e9698f02a51b92cec4d5"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"1dc61c47-d22f-414e-a875-4c08b46062fa"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"95926267-6828-4da6-8d91-05b7e0a5a6cb"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"9ad64185-f54b-42d6-83c2-f3eb2edda272"}]},"level":"info","message":"Built pairwise service configurations","requestID":"6c64465724c1e9698f02a51b92cec4d5"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"90eec570-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"90eec570-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"POST /rooms 201 1ms","method":"POST","requestID":"90eec570-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":1,"status":201,"url":"/rooms"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/da9cb60c-e036-4fc5-ac77-c32eaaecf316?id=d2219bc8-8d70-429b-8f44-2bbcc8be3817","ws://localhost/rooms/da9cb60c-e036-4fc5-ac77-c32eaaecf316?id=2b09ff36-63ad-441f-91b2-7ccc2c1972c7"]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"6c64465724c1e9698f02a51b92cec4d5"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"90ef3aa0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1439,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1439,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.670435,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"90ef3aa0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240614,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNH0.m3ViVbSUIWLklR7HwMwsRRHKXo2Dd1DQgNy7ht0VTtc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"90ef3aa0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"5b4c4cdc-949e-45fa-825a-d48185f486dd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.2522304} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8985d24e-40e9-402d-bc5e-846b04f2c7c3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.2523446} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"90ef3aa0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"90ef3aa0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"90ef3aa0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd'","requestID":"90ef3aa0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd'","requestID":"90ef3aa0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"90ef3aa0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 45ms","method":"POST","requestID":"90ef3aa0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":45,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"90ef3aa0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"90f79f10-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"2b09ff36-63ad-441f-91b2-7ccc2c1972c7\" in room \"http://localhost/rooms/da9cb60c-e036-4fc5-ac77-c32eaaecf316\"","requestID":"90f79f10-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"90f79f10-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"7850fa20d953e8c006cf77fa0ce11f74","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7850fa20d953e8c006cf77fa0ce11f74","responseTime":1,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"90f7ed30-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"d2219bc8-8d70-429b-8f44-2bbcc8be3817\" in room \"http://localhost/rooms/da9cb60c-e036-4fc5-ac77-c32eaaecf316\"","requestID":"90f7ed30-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"90f7ed30-4c2a-11f0-b702-8b8a85c3ad9a"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd"}}},"level":"info","message":"received a callback","requestID":"7850fa20d953e8c006cf77fa0ce11f74"} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"d2219bc8-8d70-429b-8f44-2bbcc8be3817\" in room \"http://localhost/rooms/da9cb60c-e036-4fc5-ac77-c32eaaecf316\"","requestID":"90f7ed30-4c2a-11f0-b702-8b8a85c3ad9a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 32ms","method":"POST","requestID":"7850fa20d953e8c006cf77fa0ce11f74","responseTime":32,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"7850fa20d953e8c006cf77fa0ce11f74"} device-1 | {"data":{"peerconnection":"db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"6c64465724c1e9698f02a51b92cec4d5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"90fe7ce0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"data":{"peerconnection":"db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1440,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d58877de-3c46-4e40-ac28-95f5a9463a24","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.346093} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1440,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.446146,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"90fe7ce0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"90fe7ce0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"6a5ea29374e1a91b157cfe8135e6e8d2","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6a5ea29374e1a91b157cfe8135e6e8d2","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"90fe7ce0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/0dd6480c-d14f-4af3-9193-72acd33af3c4/signaling 200 11ms","method":"POST","requestID":"90fe7ce0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"91009fc0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd"}}},"level":"info","message":"received a callback","requestID":"6a5ea29374e1a91b157cfe8135e6e8d2"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1441,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7f43ddcc-ea21-4d12-ad41-9a5c788c5895","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.382809} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1441,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.4517,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"9104be70-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"91009fc0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"91009fc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1442,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"91009fc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/cd430066-85a5-448e-ad72-152fcaf139f5/signaling 200 31ms","method":"POST","requestID":"91009fc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/devices/cd430066-85a5-448e-ad72-152fcaf139f5/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fdb4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a537bad7-1478-4def-a328-b4b46ff8434c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.3876872} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1442,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.781995,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9104be70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"9104be70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"9104be70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd 200 8ms","method":"GET","requestID":"9104be70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/peerconnections/db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd"} forwarding-1 | {"level":"info","message":"Participant \"86314369-e6c4-47a6-af92-8c789f5f5b27\" in room \"http://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6\" did not answer hearbeat check, closing connection","requestID":"8b137150-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"4838fe70-baf6-4b47-aefd-5faef72f14b4\" in room \"http://localhost/rooms/15e9f2df-3835-47a4-9c20-71384c7559b6\" did not answer hearbeat check, closing connection","requestID":"8b13bf70-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNX0.1rL_6rbBnWucbyghCtIkp8rPQY6Ed2JcWfovG3OxLj8","level":"info","message":"auth send jwt","requestID":"4bdf7dcdd6144be5f344de3e90d05542"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4bdf7dcdd6144be5f344de3e90d05542","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae","requestID":"4bdf7dcdd6144be5f344de3e90d05542"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 74ms","method":"POST","requestID":"6a5ea29374e1a91b157cfe8135e6e8d2","responseTime":74,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.078","http_referrer":"","http_user_agent":"node-fetch","requestID":"6a5ea29374e1a91b157cfe8135e6e8d2"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1443,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"910bea60-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1443,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.69345,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"4bdf7dcdd6144be5f344de3e90d05542","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240615,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNX0.1rL_6rbBnWucbyghCtIkp8rPQY6Ed2JcWfovG3OxLj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4bdf7dcdd6144be5f344de3e90d05542","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1444,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2570f7d6-cbf5-48c0-8830-2aae22cc9901","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.435179} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae","requestID":"4bdf7dcdd6144be5f344de3e90d05542"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1444,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.970011,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} gateway-1 | {"time_local":"18/Jun/2025:09:56:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae HTTP/1.1","status": "200","body_bytes_sent":"1289","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4bdf7dcdd6144be5f344de3e90d05542"} experiment-1 | {"level":"info","message":"GET /experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae 200 9ms","method":"GET","requestID":"4bdf7dcdd6144be5f344de3e90d05542","responseTime":9,"status":200,"url":"/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"910bea60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"910bea60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"910bea60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/cd430066-85a5-448e-ad72-152fcaf139f5/signaling 200 10ms","method":"POST","requestID":"910bea60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/cd430066-85a5-448e-ad72-152fcaf139f5/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNX0.1rL_6rbBnWucbyghCtIkp8rPQY6Ed2JcWfovG3OxLj8","level":"info","message":"auth send jwt","requestID":"dd2e161b82846f4b51a15e37f2d1f7d3"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"dd2e161b82846f4b51a15e37f2d1f7d3","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"910dbf20-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae","requestID":"dd2e161b82846f4b51a15e37f2d1f7d3"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1445,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1446,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1446,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.725948,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"dd2e161b82846f4b51a15e37f2d1f7d3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240615,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNX0.1rL_6rbBnWucbyghCtIkp8rPQY6Ed2JcWfovG3OxLj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"dd2e161b82846f4b51a15e37f2d1f7d3","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7536d6fe-0e43-4b52-b231-7791dfa2a362","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.4461336} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1445,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.459247,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"910dbf20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"910dbf20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"910dbf20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/0dd6480c-d14f-4af3-9193-72acd33af3c4/signaling 200 32ms","method":"POST","requestID":"910dbf20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae"},"level":"info","message":"Attempting to finish experiment","requestID":"dd2e161b82846f4b51a15e37f2d1f7d3"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"91131650-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1447,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1447,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.708648,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"91131650-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240615,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNX0.1rL_6rbBnWucbyghCtIkp8rPQY6Ed2JcWfovG3OxLj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"91131650-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:56:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/da9cb60c-e036-4fc5-ac77-c32eaaecf316?id=2b09ff36-63ad-441f-91b2-7ccc2c1972c7 HTTP/1.1","status": "101","body_bytes_sent":"0","request_time":"0.190","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"03d106bcec9d62aa08fed1e7380948a2"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"2b09ff36-63ad-441f-91b2-7ccc2c1972c7\" in room \"http://localhost/rooms/da9cb60c-e036-4fc5-ac77-c32eaaecf316\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"2b09ff36-63ad-441f-91b2-7ccc2c1972c7\" from room \"http://localhost/rooms/da9cb60c-e036-4fc5-ac77-c32eaaecf316\", code: 1006, reason: "} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd","device":"cd430066-85a5-448e-ad72-152fcaf139f5","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} gateway-1 | {"time_local":"18/Jun/2025:09:56:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/da9cb60c-e036-4fc5-ac77-c32eaaecf316?id=d2219bc8-8d70-429b-8f44-2bbcc8be3817 HTTP/1.1","status": "101","body_bytes_sent":"460","request_time":"0.189","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2a2464212c453aebe2c93cc82f710720"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"d2219bc8-8d70-429b-8f44-2bbcc8be3817\" in room \"http://localhost/rooms/da9cb60c-e036-4fc5-ac77-c32eaaecf316\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"d2219bc8-8d70-429b-8f44-2bbcc8be3817\" from room \"http://localhost/rooms/da9cb60c-e036-4fc5-ac77-c32eaaecf316\", code: 1005, reason: "} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"45307ac2effec9420ea8dfd0f47caa94","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"45307ac2effec9420ea8dfd0f47caa94","responseTime":0,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fdb4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fdb4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"cf139017-2041-453d-9067-41750ba6f461","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.4907944} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"7a564f462734a9654b3f8cacb10aefb1","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd"}}},"level":"info","message":"received a callback","requestID":"45307ac2effec9420ea8dfd0f47caa94"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5aa6f572-795a-4739-9221-609ffc2aae9c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.4912155} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7a564f462734a9654b3f8cacb10aefb1","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"91131650-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd"}}},"level":"info","message":"received a callback","requestID":"7a564f462734a9654b3f8cacb10aefb1"} device-1 | {"data":{"peerconnection":"db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"91131650-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd 204 53ms","method":"DELETE","requestID":"91131650-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":53,"status":204,"url":"/peerconnections/db4d2aca-a9ec-4c45-ab2d-ba4eda46c1dd"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae"},"level":"info","message":"Successfully finished experiment","requestID":"dd2e161b82846f4b51a15e37f2d1f7d3"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"911d4f80-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1448,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd430066-85a5-448e-ad72-152fcaf139f5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7ccf852b-7263-45ff-86f1-84911a48fc9d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.5717962} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1448,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.31883,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"911d4f80-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"911d4f80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"911d4f80-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/cd430066-85a5-448e-ad72-152fcaf139f5/signaling 200 31ms","method":"POST","requestID":"911d4f80-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/devices/cd430066-85a5-448e-ad72-152fcaf139f5/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"91227fa0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7ba174f8-1d07-466c-82ca-62e4d404dfae': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7ba174f8-1d07-466c-82ca-62e4d404dfae","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"f4ae432e-afd8-48a1-84a7-581a7f26f657","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.578932} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"94352642-b0e2-4076-81c1-a85390fbac1a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.5790281} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"dd2e161b82846f4b51a15e37f2d1f7d3","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1449,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0dd6480c-d14f-4af3-9193-72acd33af3c4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"30b12ef9-a296-461e-9d37-dabf56aacfa9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.581862} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1449,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.317117,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"91227fa0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"91227fa0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"91227fa0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/0dd6480c-d14f-4af3-9193-72acd33af3c4/signaling 200 7ms","method":"POST","requestID":"91227fa0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae","requestID":"dd2e161b82846f4b51a15e37f2d1f7d3"} gateway-1 | {"time_local":"18/Jun/2025:09:56:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.236","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dd2e161b82846f4b51a15e37f2d1f7d3"} experiment-1 | {"level":"info","message":"DELETE /experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae 204 233ms","method":"DELETE","requestID":"dd2e161b82846f4b51a15e37f2d1f7d3","responseTime":233,"status":204,"url":"/experiments/7ba174f8-1d07-466c-82ca-62e4d404dfae"} gateway-1 | {"time_local":"18/Jun/2025:09:56:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1645","request_time":"2.146","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"3a131f3aa9dac810c7cb853fe22b06b8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 187ms","method":"POST","requestID":"45307ac2effec9420ea8dfd0f47caa94","responseTime":187,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.189","http_referrer":"","http_user_agent":"node-fetch","requestID":"45307ac2effec9420ea8dfd0f47caa94"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 188ms","method":"POST","requestID":"7a564f462734a9654b3f8cacb10aefb1","responseTime":188,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.192","http_referrer":"","http_user_agent":"node-fetch","requestID":"7a564f462734a9654b3f8cacb10aefb1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNX0.1rL_6rbBnWucbyghCtIkp8rPQY6Ed2JcWfovG3OxLj8","level":"info","message":"auth send jwt","requestID":"50589809dd8cbc6a6e8a6efddce25356"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"50589809dd8cbc6a6e8a6efddce25356","responseTime":7,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1968","request_time":"0.807","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"5f46383b6ebb6e8816898d7f677c9fc7"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1450,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} device-1 | {"level":"info","message":"postDevices called","requestID":"50589809dd8cbc6a6e8a6efddce25356"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1450,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":24.964172,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"50589809dd8cbc6a6e8a6efddce25356","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240615,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNX0.1rL_6rbBnWucbyghCtIkp8rPQY6Ed2JcWfovG3OxLj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"50589809dd8cbc6a6e8a6efddce25356","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/cd430066-85a5-448e-ad72-152fcaf139f5' closed"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/0dd6480c-d14f-4af3-9193-72acd33af3c4' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"fc356e82-be39-4fea-8866-feec50c47c1c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.7284184} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"50589809dd8cbc6a6e8a6efddce25356","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b0615112-5d94-4d60-b48b-b6c584005ee4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.7327118} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"50589809dd8cbc6a6e8a6efddce25356","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"944c1c51-0072-432f-9f2d-c3899b1635c4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.7661169} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8e31335f-2469-4a95-a12f-005b320a976a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.7662303} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"50589809dd8cbc6a6e8a6efddce25356","responseTime":35,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:55.766076224Z"}]},"request_id":"bf7034ab-f29a-4f09-bfd0-e9258afc433f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.7700827} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"50589809dd8cbc6a6e8a6efddce25356","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"50589809dd8cbc6a6e8a6efddce25356"} device-1 | {"level":"info","message":"POST /devices? 201 87ms","method":"POST","requestID":"50589809dd8cbc6a6e8a6efddce25356","responseTime":87,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.095","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"50589809dd8cbc6a6e8a6efddce25356"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNX0.1rL_6rbBnWucbyghCtIkp8rPQY6Ed2JcWfovG3OxLj8","level":"info","message":"auth send jwt","requestID":"3c11280e169a010b287c5efe30fcf265"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3c11280e169a010b287c5efe30fcf265","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"3c11280e169a010b287c5efe30fcf265"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1451,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1451,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.69323,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"3c11280e169a010b287c5efe30fcf265","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240615,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNX0.1rL_6rbBnWucbyghCtIkp8rPQY6Ed2JcWfovG3OxLj8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3c11280e169a010b287c5efe30fcf265","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5e928004-2539-4eae-a28e-95e3b1dd632b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.8148243} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3c11280e169a010b287c5efe30fcf265","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8f4caffd-f2cf-408f-b79d-e6fefff6d221","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.8190494} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"3c11280e169a010b287c5efe30fcf265","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"bfca6864-e2b1-444b-9fca-81ac5003c40c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.8308244} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"43bf6d46-15b7-45c1-8083-06eccb44d3d1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.831127} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"3c11280e169a010b287c5efe30fcf265","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:55.830783412Z"}]},"request_id":"21ac5642-5ad1-4f81-81ed-92c4ce0bad29","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240615.8347592} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3c11280e169a010b287c5efe30fcf265","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"3c11280e169a010b287c5efe30fcf265"} gateway-1 | {"time_local":"18/Jun/2025:09:56:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.063","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3c11280e169a010b287c5efe30fcf265"} device-1 | {"level":"info","message":"POST /devices? 201 84ms","method":"POST","requestID":"3c11280e169a010b287c5efe30fcf265","responseTime":84,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNn0.NHjxF2HvW4Gx9Vkf26p3uraq4IRWbET-IOcOHuWiz7k","level":"info","message":"auth send jwt","requestID":"74a7a306e6160efbb498ac2c37f39572"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"74a7a306e6160efbb498ac2c37f39572","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"74a7a306e6160efbb498ac2c37f39572"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1452,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:56Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1452,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.748535,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:56Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"74a7a306e6160efbb498ac2c37f39572","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240616,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNn0.NHjxF2HvW4Gx9Vkf26p3uraq4IRWbET-IOcOHuWiz7k"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"74a7a306e6160efbb498ac2c37f39572","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:55.766076224Z"}]},"request_id":"2bdcbe3d-7e1e-4880-a4e9-8d95aa584598","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240616.7832997} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"74a7a306e6160efbb498ac2c37f39572","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3f4516c6-a00f-437c-901f-f10d493b69f3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240616.7877872} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"74a7a306e6160efbb498ac2c37f39572","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:55.766076224Z"}]},"request_id":"e290e29f-252f-43c4-a45a-85518d3ad4af","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240616.8170557} authorization-1 | {"level":"info","message":"POST /relations/query 200 22ms","method":"POST","requestID":"74a7a306e6160efbb498ac2c37f39572","responseTime":22,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"74a7a306e6160efbb498ac2c37f39572"} gateway-1 | {"time_local":"18/Jun/2025:09:56:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353 HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.047","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"74a7a306e6160efbb498ac2c37f39572"} device-1 | {"level":"info","message":"PATCH /devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353 200 43ms","method":"PATCH","requestID":"74a7a306e6160efbb498ac2c37f39572","responseTime":43,"status":200,"url":"/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNn0.NHjxF2HvW4Gx9Vkf26p3uraq4IRWbET-IOcOHuWiz7k","level":"info","message":"auth send jwt","requestID":"b6b82e4444dfec93ca624ac0c7377a29"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b6b82e4444dfec93ca624ac0c7377a29","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"b6b82e4444dfec93ca624ac0c7377a29"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1453,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:56Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1453,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.699329,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:56Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b6b82e4444dfec93ca624ac0c7377a29","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240616,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxNn0.NHjxF2HvW4Gx9Vkf26p3uraq4IRWbET-IOcOHuWiz7k"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b6b82e4444dfec93ca624ac0c7377a29","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"b6b82e4444dfec93ca624ac0c7377a29"} device-1 | {"level":"info","message":"POST /devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353/websocket 200 12ms","method":"POST","requestID":"b6b82e4444dfec93ca624ac0c7377a29","responseTime":12,"status":200,"url":"/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:56:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.015","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"b6b82e4444dfec93ca624ac0c7377a29"} device-1 | {"level":"info","message":"device 'http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353' connected"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"6f45b8a0-15ed-40a9-bf20-c4c69cf2afc3\" in room \"http://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda\"","requestID":"8eff0360-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"d23834ca-86fe-4a86-afa9-f0b949082017\" in room \"http://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda\"","requestID":"8f032210-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"410e9a11e21957a7184076850dc8b87e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"410e9a11e21957a7184076850dc8b87e","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/736a7364-487a-4fcd-9b09-fa6609f3fb17/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"410e9a11e21957a7184076850dc8b87e"} device-1 | {"level":"info","message":"OPTIONS /devices/736a7364-487a-4fcd-9b09-fa6609f3fb17/websocket 200 1ms","method":"OPTIONS","requestID":"410e9a11e21957a7184076850dc8b87e","responseTime":1,"status":200,"url":"/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4","level":"info","message":"auth send jwt","requestID":"12630ef5aa5d9db0158cf01a26143a65"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"12630ef5aa5d9db0158cf01a26143a65","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"12630ef5aa5d9db0158cf01a26143a65"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1454,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1454,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.317404,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"12630ef5aa5d9db0158cf01a26143a65","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240618,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"12630ef5aa5d9db0158cf01a26143a65","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"12630ef5aa5d9db0158cf01a26143a65"} gateway-1 | {"time_local":"18/Jun/2025:09:56:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/736a7364-487a-4fcd-9b09-fa6609f3fb17/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"12630ef5aa5d9db0158cf01a26143a65"} device-1 | {"level":"info","message":"POST /devices/736a7364-487a-4fcd-9b09-fa6609f3fb17/websocket 200 21ms","method":"POST","requestID":"12630ef5aa5d9db0158cf01a26143a65","responseTime":21,"status":200,"url":"/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"804f26201e95242938e3913f66074df9","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"804f26201e95242938e3913f66074df9","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:56:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/736a7364-487a-4fcd-9b09-fa6609f3fb17? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"804f26201e95242938e3913f66074df9"} device-1 | {"level":"info","message":"OPTIONS /devices/736a7364-487a-4fcd-9b09-fa6609f3fb17? 200 1ms","method":"OPTIONS","requestID":"804f26201e95242938e3913f66074df9","responseTime":1,"status":200,"url":"/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4","level":"info","message":"auth send jwt","requestID":"32c35d68fbdc865082f2fe5f29e03856"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"32c35d68fbdc865082f2fe5f29e03856","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"32c35d68fbdc865082f2fe5f29e03856"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1455,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1455,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.647713,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"32c35d68fbdc865082f2fe5f29e03856","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240618,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"32c35d68fbdc865082f2fe5f29e03856","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:55.830783412Z"}]},"request_id":"69425b22-296b-46d5-923f-1945444dce28","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.2814991} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"32c35d68fbdc865082f2fe5f29e03856","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d672c08e-27d7-4404-ac2e-08838d2bbd91","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.2850513} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"32c35d68fbdc865082f2fe5f29e03856","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:55.830783412Z"}]},"request_id":"759faf1a-af3b-4a28-a62d-dc35a90b17ac","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.296206} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"32c35d68fbdc865082f2fe5f29e03856","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"32c35d68fbdc865082f2fe5f29e03856"} device-1 | {"level":"info","message":"PATCH /devices/736a7364-487a-4fcd-9b09-fa6609f3fb17? 200 28ms","method":"PATCH","requestID":"32c35d68fbdc865082f2fe5f29e03856","responseTime":28,"status":200,"url":"/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/736a7364-487a-4fcd-9b09-fa6609f3fb17? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.031","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"32c35d68fbdc865082f2fe5f29e03856"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4","level":"info","message":"auth send jwt","requestID":"88ede90706bed81d7f79974191dfa2c1"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"88ede90706bed81d7f79974191dfa2c1","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"88ede90706bed81d7f79974191dfa2c1"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1456,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1456,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.517025,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"88ede90706bed81d7f79974191dfa2c1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240618,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"88ede90706bed81d7f79974191dfa2c1","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:55.766076224Z"}]},"request_id":"8b38fd19-0e7f-41e4-be44-c5655569f6bc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.3199916} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"88ede90706bed81d7f79974191dfa2c1","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"88ede90706bed81d7f79974191dfa2c1"} gateway-1 | {"time_local":"18/Jun/2025:09:56:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"88ede90706bed81d7f79974191dfa2c1"} device-1 | {"level":"info","message":"GET /devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353? 200 13ms","method":"GET","requestID":"88ede90706bed81d7f79974191dfa2c1","responseTime":13,"status":200,"url":"/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4","level":"info","message":"auth send jwt","requestID":"ab40aa2cf6933b2a35ba47074bbba1dc"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ab40aa2cf6933b2a35ba47074bbba1dc","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ab40aa2cf6933b2a35ba47074bbba1dc"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1457,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1457,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.076092,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ab40aa2cf6933b2a35ba47074bbba1dc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240618,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ab40aa2cf6933b2a35ba47074bbba1dc","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:55.830783412Z"}]},"request_id":"589cdb81-a8fc-4f9e-b725-f1c76dc0d9fd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.3378246} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ab40aa2cf6933b2a35ba47074bbba1dc","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ab40aa2cf6933b2a35ba47074bbba1dc"} gateway-1 | {"time_local":"18/Jun/2025:09:56:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/736a7364-487a-4fcd-9b09-fa6609f3fb17? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ab40aa2cf6933b2a35ba47074bbba1dc"} device-1 | {"level":"info","message":"GET /devices/736a7364-487a-4fcd-9b09-fa6609f3fb17? 200 13ms","method":"GET","requestID":"ab40aa2cf6933b2a35ba47074bbba1dc","responseTime":13,"status":200,"url":"/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4","level":"info","message":"auth send jwt","requestID":"b16971a0b3b525e375138a02bb20337a"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b16971a0b3b525e375138a02bb20337a","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"b16971a0b3b525e375138a02bb20337a"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1458,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1458,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.074245,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b16971a0b3b525e375138a02bb20337a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240618,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b16971a0b3b525e375138a02bb20337a","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7"},"level":"info","message":"Attempting to run experiment","requestID":"b16971a0b3b525e375138a02bb20337a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7"},"level":"info","message":"Attempting to book experiment","requestID":"b16971a0b3b525e375138a02bb20337a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7"},"level":"info","message":"Successfully booked experiment","requestID":"b16971a0b3b525e375138a02bb20337a"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"92d20460-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"92d22b70-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1459,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1459,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.786614,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1460,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"92d20460-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240618,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"92d20460-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1460,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.842983,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"92d22b70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240618,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"92d22b70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:55.766076224Z"}]},"request_id":"870cb7ba-3335-4a0a-86f4-3cdfc781fa0f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.4143248} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"92d20460-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:55.830783412Z"}]},"request_id":"27b4185c-b69e-4c9a-aa5a-a1bbd57bf348","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.4150875} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"92d22b70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"92d20460-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353? 200 14ms","method":"GET","requestID":"92d20460-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"92d22b70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/736a7364-487a-4fcd-9b09-fa6609f3fb17? 200 14ms","method":"GET","requestID":"92d22b70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7"},"level":"info","message":"Setting up experiment","requestID":"b16971a0b3b525e375138a02bb20337a"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"b16971a0b3b525e375138a02bb20337a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"b16971a0b3b525e375138a02bb20337a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7"},"level":"info","message":"Successfully locked booking for experiment","requestID":"b16971a0b3b525e375138a02bb20337a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7"},"level":"info","message":"Successfully set up experiment","requestID":"b16971a0b3b525e375138a02bb20337a"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"92db0510-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"92db2c20-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7"},"level":"info","message":"Successfully running experiment","requestID":"b16971a0b3b525e375138a02bb20337a"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1461,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1461,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.730883,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1462,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"92db0510-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240618,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"92db0510-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1462,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.475704,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"92db2c20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240618,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"92db2c20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:55.766076224Z"}]},"request_id":"f57829c8-cab3-4a00-8220-a2d53edca683","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.4977708} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"92db0510-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":26,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:55.830783412Z"}]},"request_id":"258136dc-ac67-40d4-a5dd-5e424f218200","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.498326} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"92db2c20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"92db0510-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353? 200 36ms","method":"GET","requestID":"92db0510-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"92db2c20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/736a7364-487a-4fcd-9b09-fa6609f3fb17? 200 36ms","method":"GET","requestID":"92db2c20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa95df7ff-d322-443d-bd7e-43a3e101afa7#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa95df7ff-d322-443d-bd7e-43a3e101afa7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"a14d763f-78dc-4c13-9646-68c00e305c9f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.504103} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b7e273a9-9f6a-46bc-93ce-bd70b2304ea7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.504252} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"92e0f880-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"b16971a0b3b525e375138a02bb20337a","responseTime":36,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1463,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dce7d830-31bc-4e72-9f37-b98f63217876","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.5088208} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1463,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.694241,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"b16971a0b3b525e375138a02bb20337a"} experiment-1 | {"level":"info","message":"POST /experiments? 201 161ms","method":"POST","requestID":"b16971a0b3b525e375138a02bb20337a","responseTime":161,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1216","request_time":"0.166","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b16971a0b3b525e375138a02bb20337a"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"92e0f880-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"92e0f880-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"92e0f880-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353/signaling 200 9ms","method":"POST","requestID":"92e0f880-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4","level":"info","message":"auth send jwt","requestID":"ff7a7c128b642de1db8e09728abd0b79"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ff7a7c128b642de1db8e09728abd0b79","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ff7a7c128b642de1db8e09728abd0b79"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"92e2a630-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1464,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1464,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.627211,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1465,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ff7a7c128b642de1db8e09728abd0b79","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240618,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ff7a7c128b642de1db8e09728abd0b79","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d4e7aa0f-ef85-4987-a281-9e926237bb14","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.5191963} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1465,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.297944,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"92e2a630-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"92e2a630-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:55.766076224Z"}]},"request_id":"d442b57b-b2b2-4d33-9b7d-6488f32686fd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.545176} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"ff7a7c128b642de1db8e09728abd0b79","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"92e2a630-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/736a7364-487a-4fcd-9b09-fa6609f3fb17/signaling 200 33ms","method":"POST","requestID":"92e2a630-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ff7a7c128b642de1db8e09728abd0b79"} gateway-1 | {"time_local":"18/Jun/2025:09:56:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ff7a7c128b642de1db8e09728abd0b79"} device-1 | {"level":"info","message":"GET /devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353? 200 35ms","method":"GET","requestID":"ff7a7c128b642de1db8e09728abd0b79","responseTime":35,"status":200,"url":"/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"b16971a0b3b525e375138a02bb20337a"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"92e82470-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"92e82471-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4","level":"info","message":"auth send jwt","requestID":"b05f64159db253b7b1e5ae1c6263eb14"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b05f64159db253b7b1e5ae1c6263eb14","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"b05f64159db253b7b1e5ae1c6263eb14"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1466,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1466,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.823642,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1467,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"92e82470-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240618,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"92e82470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1467,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.877655,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"92e82471-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240618,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"92e82471-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1468,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1468,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.6247,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b05f64159db253b7b1e5ae1c6263eb14","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240618,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b05f64159db253b7b1e5ae1c6263eb14","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:55.830783412Z"}]},"request_id":"f5bcbe8f-905a-4bb9-9032-45b8e01cf61b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.560236} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"92e82471-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:55.766076224Z"}]},"request_id":"500a99da-454f-4954-9fae-98c60e8609f9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.562323} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"92e82470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:55.830783412Z"}]},"request_id":"8bbcce7e-7087-4275-becc-e13935fcc050","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.5638342} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b05f64159db253b7b1e5ae1c6263eb14","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"92e82471-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/736a7364-487a-4fcd-9b09-fa6609f3fb17? 200 14ms","method":"GET","requestID":"92e82471-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"92e82470-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353? 200 16ms","method":"GET","requestID":"92e82470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":16,"status":200,"url":"/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"b05f64159db253b7b1e5ae1c6263eb14"} gateway-1 | {"time_local":"18/Jun/2025:09:56:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/736a7364-487a-4fcd-9b09-fa6609f3fb17? HTTP/1.1","status": "200","body_bytes_sent":"1007","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b05f64159db253b7b1e5ae1c6263eb14"} device-1 | {"level":"info","message":"GET /devices/736a7364-487a-4fcd-9b09-fa6609f3fb17? 200 39ms","method":"GET","requestID":"b05f64159db253b7b1e5ae1c6263eb14","responseTime":39,"status":200,"url":"/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7"},"level":"info","message":"Building connection plan","requestID":"b16971a0b3b525e375138a02bb20337a"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"0f278825-dbdc-4c74-b799-31c456a98fff"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"3a56f1e7-3c64-47a1-af41-167b3b25b7eb"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"df6d6a87-9656-4df3-804b-b42fe56a67fe"}]},"level":"info","message":"Built pairwise service configurations","requestID":"b16971a0b3b525e375138a02bb20337a"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"92eeb420-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"92eeb420-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"POST /rooms 201 1ms","method":"POST","requestID":"92eeb420-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":1,"status":201,"url":"/rooms"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97?id=9a08a463-2a30-4270-9072-c247ccbd1bb8","ws://localhost/rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97?id=61581f7a-afc8-46fb-a215-58ce510fbd8b"]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"b16971a0b3b525e375138a02bb20337a"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"92ef2950-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1469,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1469,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.689803,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"92ef2950-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240618,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"92ef2950-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"3943228e-a761-4383-91db-b4909294bfe0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.6083202} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f4260d18-b0ba-4624-adee-ec3634ba953c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.6086557} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"92ef2950-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"92ef2950-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"92ef2950-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/a8e1a46f-fa31-4d8c-a421-03d0c635446b'","requestID":"92ef2950-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/a8e1a46f-fa31-4d8c-a421-03d0c635446b'","requestID":"92ef2950-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"92ef2950-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 22ms","method":"POST","requestID":"92ef2950-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":22,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"92ef2950-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/a8e1a46f-fa31-4d8c-a421-03d0c635446b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a8e1a46f-fa31-4d8c-a421-03d0c635446b","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"92f6f180-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"9a08a463-2a30-4270-9072-c247ccbd1bb8\" in room \"http://localhost/rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97\"","requestID":"92f6f180-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"92f6f180-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"92f71890-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f1aa850e7d7f1aca988983ccce6c2336","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"61581f7a-afc8-46fb-a215-58ce510fbd8b\" in room \"http://localhost/rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97\"","requestID":"92f71890-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"92f71890-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f1aa850e7d7f1aca988983ccce6c2336","responseTime":2,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"61581f7a-afc8-46fb-a215-58ce510fbd8b\" in room \"http://localhost/rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97\"","requestID":"92f71890-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"61581f7a-afc8-46fb-a215-58ce510fbd8b\" in room \"http://localhost/rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"61581f7a-afc8-46fb-a215-58ce510fbd8b\" in room \"http://localhost/rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97\""} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/a8e1a46f-fa31-4d8c-a421-03d0c635446b"}}},"level":"info","message":"received a callback","requestID":"f1aa850e7d7f1aca988983ccce6c2336"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"61581f7a-afc8-46fb-a215-58ce510fbd8b\" in room \"http://localhost/rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"61581f7a-afc8-46fb-a215-58ce510fbd8b\" in room \"http://localhost/rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"61581f7a-afc8-46fb-a215-58ce510fbd8b\" in room \"http://localhost/rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"61581f7a-afc8-46fb-a215-58ce510fbd8b\" in room \"http://localhost/rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97\""} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"f1aa850e7d7f1aca988983ccce6c2336","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"f1aa850e7d7f1aca988983ccce6c2336"} device-1 | {"data":{"peerconnection":"a8e1a46f-fa31-4d8c-a421-03d0c635446b","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"a8e1a46f-fa31-4d8c-a421-03d0c635446b","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"b16971a0b3b525e375138a02bb20337a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"92fe1d70-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1470,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"20cfc954-4dfa-4f48-a0fd-1fc984034159","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.699071} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1470,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.541862,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/a8e1a46f-fa31-4d8c-a421-03d0c635446b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a8e1a46f-fa31-4d8c-a421-03d0c635446b","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"92fe1d70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"92fe1d70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"1052059bec966aa7df27b8279dbef24e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1052059bec966aa7df27b8279dbef24e","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/a8e1a46f-fa31-4d8c-a421-03d0c635446b"}}},"level":"info","message":"received a callback","requestID":"1052059bec966aa7df27b8279dbef24e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"92fe1d70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353/signaling 200 10ms","method":"POST","requestID":"92fe1d70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"92fff230-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1471,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"9300b580-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"894a2c92-4974-46c6-a790-e8f21a9f18b9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.736987} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1471,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.13626,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1472,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"92fff230-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"92fff230-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa8e1a46f-fa31-4d8c-a421-03d0c635446b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"30586326-ef34-4aa5-b091-1639b78f057f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.7400894} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1472,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.394071,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"92fff230-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a8e1a46f-fa31-4d8c-a421-03d0c635446b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9300b580-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/a8e1a46f-fa31-4d8c-a421-03d0c635446b","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"POST /devices/736a7364-487a-4fcd-9b09-fa6609f3fb17/signaling 200 34ms","method":"POST","requestID":"92fff230-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17/signaling"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"9300b580-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"9300b580-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/a8e1a46f-fa31-4d8c-a421-03d0c635446b 200 31ms","method":"GET","requestID":"9300b580-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/peerconnections/a8e1a46f-fa31-4d8c-a421-03d0c635446b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 51ms","method":"POST","requestID":"1052059bec966aa7df27b8279dbef24e","responseTime":51,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch","requestID":"1052059bec966aa7df27b8279dbef24e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"93074530-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4","level":"info","message":"auth send jwt","requestID":"e035a02a78c427add3222be9a8cbddc3"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e035a02a78c427add3222be9a8cbddc3","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1473,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7","requestID":"e035a02a78c427add3222be9a8cbddc3"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2c4942f1-2d46-429f-8950-6eb713ee7612","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.7600071} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1473,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.296865,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1474,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"93074530-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"93074530-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1474,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.556217,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e035a02a78c427add3222be9a8cbddc3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240618,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"e035a02a78c427add3222be9a8cbddc3","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"93074530-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353/signaling 200 33ms","method":"POST","requestID":"93074530-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"930c9c60-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7","requestID":"e035a02a78c427add3222be9a8cbddc3"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1475,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} gateway-1 | {"time_local":"18/Jun/2025:09:56:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7 HTTP/1.1","status": "200","body_bytes_sent":"1289","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e035a02a78c427add3222be9a8cbddc3"} experiment-1 | {"level":"info","message":"GET /experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7 200 35ms","method":"GET","requestID":"e035a02a78c427add3222be9a8cbddc3","responseTime":35,"status":200,"url":"/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"32725e74-f55f-43a7-a999-075a9400959f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.7945561} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1475,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.305022,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"930c9c60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4","level":"info","message":"auth send jwt","requestID":"ed502e96902613d40e3a2e8137a00237"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"930c9c60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ed502e96902613d40e3a2e8137a00237","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7","requestID":"ed502e96902613d40e3a2e8137a00237"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"930c9c60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/736a7364-487a-4fcd-9b09-fa6609f3fb17/signaling 200 9ms","method":"POST","requestID":"930c9c60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17/signaling"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1476,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1476,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.741466,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"ed502e96902613d40e3a2e8137a00237","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240618,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ed502e96902613d40e3a2e8137a00237","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7"},"level":"info","message":"Attempting to finish experiment","requestID":"ed502e96902613d40e3a2e8137a00237"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"930f3470-4c2a-11f0-a085-a5c7b3a0c4e5"} forwarding-1 | {"level":"info","message":"Participant \"e009434c-8e5e-4f6b-b429-22cdfec9ef00\" in room \"http://localhost/rooms/6367efa6-a9f9-4046-992a-6d6a06903589\" did not answer hearbeat check, closing connection","requestID":"8d1b2830-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"4a5f6479-539b-44b6-999b-3b420ac459c5\" in room \"http://localhost/rooms/6367efa6-a9f9-4046-992a-6d6a06903589\" did not answer hearbeat check, closing connection","requestID":"8d1b9d60-4c2a-11f0-b702-8b8a85c3ad9a"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1477,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1477,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.609042,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a8e1a46f-fa31-4d8c-a421-03d0c635446b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"930f3470-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/a8e1a46f-fa31-4d8c-a421-03d0c635446b","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240618,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOH0.bIwo0igvl1Zg8UfSnabzlJ5InPtplXW1jzc7SFcwat4"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"930f3470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":27,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:56:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97?id=9a08a463-2a30-4270-9072-c247ccbd1bb8 HTTP/1.1","status": "101","body_bytes_sent":"0","request_time":"0.193","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"4bb508334619ada6169e6630aeb4a1ff"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"9a08a463-2a30-4270-9072-c247ccbd1bb8\" in room \"http://localhost/rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"9a08a463-2a30-4270-9072-c247ccbd1bb8\" from room \"http://localhost/rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97\", code: 1006, reason: "} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/a8e1a46f-fa31-4d8c-a421-03d0c635446b' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/a8e1a46f-fa31-4d8c-a421-03d0c635446b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a8e1a46f-fa31-4d8c-a421-03d0c635446b","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} gateway-1 | {"time_local":"18/Jun/2025:09:56:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97?id=61581f7a-afc8-46fb-a215-58ce510fbd8b HTTP/1.1","status": "101","body_bytes_sent":"918","request_time":"0.195","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a921449e01a502c139db20412b68c73d"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"61581f7a-afc8-46fb-a215-58ce510fbd8b\" in room \"http://localhost/rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"61581f7a-afc8-46fb-a215-58ce510fbd8b\" from room \"http://localhost/rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97\", code: 1005, reason: "} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/a8e1a46f-fa31-4d8c-a421-03d0c635446b","device":"736a7364-487a-4fcd-9b09-fa6609f3fb17","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8e8b185961c4e27f20b6ae2c62310a2b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8e8b185961c4e27f20b6ae2c62310a2b","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa8e1a46f-fa31-4d8c-a421-03d0c635446b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa8e1a46f-fa31-4d8c-a421-03d0c635446b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"a475b69a-8623-421a-9174-93ee99c5a248","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.8455276} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1ba18d11-6db8-4ac3-ae1d-3ddf542b41e1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.8459246} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ec4a8f8d377d10ff91ea44eb20da0d43","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"930f3470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/a8e1a46f-fa31-4d8c-a421-03d0c635446b"}}},"level":"info","message":"received a callback","requestID":"8e8b185961c4e27f20b6ae2c62310a2b"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ec4a8f8d377d10ff91ea44eb20da0d43","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/a8e1a46f-fa31-4d8c-a421-03d0c635446b"}}},"level":"info","message":"received a callback","requestID":"ec4a8f8d377d10ff91ea44eb20da0d43"} device-1 | {"data":{"peerconnection":"a8e1a46f-fa31-4d8c-a421-03d0c635446b","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"930f3470-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/a8e1a46f-fa31-4d8c-a421-03d0c635446b 204 78ms","method":"DELETE","requestID":"930f3470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":78,"status":204,"url":"/peerconnections/a8e1a46f-fa31-4d8c-a421-03d0c635446b"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7"},"level":"info","message":"Successfully finished experiment","requestID":"ed502e96902613d40e3a2e8137a00237"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"931d6540-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1478,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"278b6c4e-3b7c-4286-afc1-756c8a64b7db","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.9040067} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1478,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.295167,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"931d6540-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"931d6540-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"931d6540-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353/signaling 200 7ms","method":"POST","requestID":"931d6540-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"93226e50-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa95df7ff-d322-443d-bd7e-43a3e101afa7': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa95df7ff-d322-443d-bd7e-43a3e101afa7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"21a148a2-a822-4552-b15f-2cf87a813d43","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.935274} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"08605e18-d25d-40de-bd28-a416f967ae07","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.9354222} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"ed502e96902613d40e3a2e8137a00237","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1479,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F736a7364-487a-4fcd-9b09-fa6609f3fb17","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"18610fd7-d6b3-4c6b-a2a1-f500594c697e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240618.938484} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1479,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.262055,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"93226e50-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"93226e50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"93226e50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/736a7364-487a-4fcd-9b09-fa6609f3fb17/signaling 200 8ms","method":"POST","requestID":"93226e50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7","requestID":"ed502e96902613d40e3a2e8137a00237"} gateway-1 | {"time_local":"18/Jun/2025:09:56:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.237","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ed502e96902613d40e3a2e8137a00237"} experiment-1 | {"level":"info","message":"DELETE /experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7 204 235ms","method":"DELETE","requestID":"ed502e96902613d40e3a2e8137a00237","responseTime":235,"status":204,"url":"/experiments/a95df7ff-d322-443d-bd7e-43a3e101afa7"} gateway-1 | {"time_local":"18/Jun/2025:09:56:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1646","request_time":"2.197","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"c345dd813498c7bf5c3feecb03778fab"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 188ms","method":"POST","requestID":"8e8b185961c4e27f20b6ae2c62310a2b","responseTime":188,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.191","http_referrer":"","http_user_agent":"node-fetch","requestID":"8e8b185961c4e27f20b6ae2c62310a2b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 187ms","method":"POST","requestID":"ec4a8f8d377d10ff91ea44eb20da0d43","responseTime":187,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:56:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.192","http_referrer":"","http_user_agent":"node-fetch","requestID":"ec4a8f8d377d10ff91ea44eb20da0d43"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOX0.M25reBdCgRceIxSL5JJtrH1vJy3GqCfLIzOG96mbvIQ","level":"info","message":"auth send jwt","requestID":"9ef0ee5b08e3af90121a580d7c3c8d18"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9ef0ee5b08e3af90121a580d7c3c8d18","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"9ef0ee5b08e3af90121a580d7c3c8d18"} gateway-1 | {"time_local":"18/Jun/2025:09:56:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1967","request_time":"0.806","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ed4de69108137b0c015bd1eeb41f0888"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1480,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:59Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1480,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.886257,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9ef0ee5b08e3af90121a580d7c3c8d18","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240619,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOX0.M25reBdCgRceIxSL5JJtrH1vJy3GqCfLIzOG96mbvIQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"9ef0ee5b08e3af90121a580d7c3c8d18","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/3b3a2b73-c2c9-40ed-8e94-f2d67b5e8353' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"becdb828-5160-4683-babf-ed10d46c752d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240619.0825403} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"9ef0ee5b08e3af90121a580d7c3c8d18","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/736a7364-487a-4fcd-9b09-fa6609f3fb17' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"15526c93-1478-4e68-ace5-8887407a2aa1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240619.0869849} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"9ef0ee5b08e3af90121a580d7c3c8d18","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"6a691d3d-9a4c-44ba-a73c-b016a2cf54c2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240619.0958788} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b1ec3a95-1dc7-4d85-b09b-81995ead837b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240619.0960493} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"9ef0ee5b08e3af90121a580d7c3c8d18","responseTime":35,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:59.095845325Z"}]},"request_id":"2c81f89f-3a94-4505-bc07-1a598b8766ac","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240619.1241379} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"9ef0ee5b08e3af90121a580d7c3c8d18","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"9ef0ee5b08e3af90121a580d7c3c8d18"} gateway-1 | {"time_local":"18/Jun/2025:09:56:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.093","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9ef0ee5b08e3af90121a580d7c3c8d18"} device-1 | {"level":"info","message":"POST /devices? 201 87ms","method":"POST","requestID":"9ef0ee5b08e3af90121a580d7c3c8d18","responseTime":87,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOX0.M25reBdCgRceIxSL5JJtrH1vJy3GqCfLIzOG96mbvIQ","level":"info","message":"auth send jwt","requestID":"6583a0daf4922197140c3bcb4df9163d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6583a0daf4922197140c3bcb4df9163d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"6583a0daf4922197140c3bcb4df9163d"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1481,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:56:59Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1481,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.724368,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:56:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6583a0daf4922197140c3bcb4df9163d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240619,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYxOX0.M25reBdCgRceIxSL5JJtrH1vJy3GqCfLIzOG96mbvIQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6583a0daf4922197140c3bcb4df9163d","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"958e2da8-3970-4a49-8d9a-e5041e702c7a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240619.1456704} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6583a0daf4922197140c3bcb4df9163d","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"99f768ed-d131-4251-bdb2-5b72221aee06","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240619.173661} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"6583a0daf4922197140c3bcb4df9163d","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"60b552aa-45c1-4ccc-8fc3-fc0d3d450fdc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240619.1841486} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"198777a0-0e79-4ad1-920b-43dbdbf9037e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240619.1841974} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","method":"POST","requestID":"6583a0daf4922197140c3bcb4df9163d","responseTime":17,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:59.184097400Z"}]},"request_id":"4ed26a38-328b-4ee9-a85b-2314ad92b482","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240619.1885796} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6583a0daf4922197140c3bcb4df9163d","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"6583a0daf4922197140c3bcb4df9163d"} device-1 | {"level":"info","message":"POST /devices? 201 59ms","method":"POST","requestID":"6583a0daf4922197140c3bcb4df9163d","responseTime":59,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:56:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.063","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6583a0daf4922197140c3bcb4df9163d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg","level":"info","message":"auth send jwt","requestID":"16e437585088f50836b49cab7f174049"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"16e437585088f50836b49cab7f174049","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"16e437585088f50836b49cab7f174049"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1482,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1482,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.75298,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"16e437585088f50836b49cab7f174049","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"16e437585088f50836b49cab7f174049","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"b838a93ba3510181da8e0154cdc75ee5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg","level":"info","message":"auth send jwt","requestID":"b838a93ba3510181da8e0154cdc75ee5"} authentication-1 | {"level":"info","message":"GET /auth 200 24ms","method":"GET","requestID":"b838a93ba3510181da8e0154cdc75ee5","responseTime":24,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:59.095845325Z"}]},"request_id":"5d372135-7e0a-4f04-b369-89295d65d994","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.1334522} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"16e437585088f50836b49cab7f174049","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1483,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1483,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.883792,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b838a93ba3510181da8e0154cdc75ee5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b838a93ba3510181da8e0154cdc75ee5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3c62d0dd-6742-4aa4-a46f-0fd9c5e5a50e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.1380286} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"16e437585088f50836b49cab7f174049","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:59.184097400Z"}]},"request_id":"6df3c859-e375-4d2b-bca5-e428563aacda","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.1405191} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b838a93ba3510181da8e0154cdc75ee5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e4fbea8b-53a3-4ae3-9aa8-a388023e4b6f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.144112} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"b838a93ba3510181da8e0154cdc75ee5","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:59.095845325Z"}]},"request_id":"1e02b4c6-8b48-4625-ba95-6bd431c59892","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.1492517} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"16e437585088f50836b49cab7f174049","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"16e437585088f50836b49cab7f174049"} gateway-1 | {"time_local":"18/Jun/2025:09:57:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9 HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.050","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"16e437585088f50836b49cab7f174049"} device-1 | {"level":"info","message":"PATCH /devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9 200 47ms","method":"PATCH","requestID":"16e437585088f50836b49cab7f174049","responseTime":47,"status":200,"url":"/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg","level":"info","message":"auth send jwt","requestID":"9e4a062a1a5136812fe9bef4ea77973d"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"9e4a062a1a5136812fe9bef4ea77973d","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"9e4a062a1a5136812fe9bef4ea77973d"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:59.184097400Z"}]},"request_id":"4584df88-9e3d-4164-a700-b40908012528","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.1810906} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"b838a93ba3510181da8e0154cdc75ee5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1484,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1484,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.686201,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"b838a93ba3510181da8e0154cdc75ee5"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9e4a062a1a5136812fe9bef4ea77973d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} device-1 | {"level":"info","message":"PATCH /devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5 200 51ms","method":"PATCH","requestID":"b838a93ba3510181da8e0154cdc75ee5","responseTime":51,"status":200,"url":"/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5"} gateway-1 | {"time_local":"18/Jun/2025:09:57:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5 HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.077","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"b838a93ba3510181da8e0154cdc75ee5"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"9e4a062a1a5136812fe9bef4ea77973d","responseTime":3,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg","level":"info","message":"auth send jwt","requestID":"9ced7f2c28bb14b11ddea6dc3521b1de"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9ced7f2c28bb14b11ddea6dc3521b1de","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"9ced7f2c28bb14b11ddea6dc3521b1de"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1485,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1485,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.660948,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9ced7f2c28bb14b11ddea6dc3521b1de","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"9ced7f2c28bb14b11ddea6dc3521b1de","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"9e4a062a1a5136812fe9bef4ea77973d"} device-1 | {"level":"info","message":"POST /devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9/websocket 200 16ms","method":"POST","requestID":"9e4a062a1a5136812fe9bef4ea77973d","responseTime":16,"status":200,"url":"/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:57:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.044","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"9e4a062a1a5136812fe9bef4ea77973d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"9ced7f2c28bb14b11ddea6dc3521b1de"} gateway-1 | {"time_local":"18/Jun/2025:09:57:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.046","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"9ced7f2c28bb14b11ddea6dc3521b1de"} device-1 | {"level":"info","message":"POST /devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5/websocket 200 44ms","method":"POST","requestID":"9ced7f2c28bb14b11ddea6dc3521b1de","responseTime":44,"status":200,"url":"/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg","level":"info","message":"auth send jwt","requestID":"0fc280ff6b43cccc07a7577166fd3993"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0fc280ff6b43cccc07a7577166fd3993"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"0fc280ff6b43cccc07a7577166fd3993","responseTime":6,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1486,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1486,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.703148,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0fc280ff6b43cccc07a7577166fd3993","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"0fc280ff6b43cccc07a7577166fd3993","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:59.095845325Z"}]},"request_id":"e30127d5-b39e-4736-a9fb-033908c5ffbe","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.2598312} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"0fc280ff6b43cccc07a7577166fd3993","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0fc280ff6b43cccc07a7577166fd3993"} device-1 | {"level":"info","message":"GET /devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9? 200 8ms","method":"GET","requestID":"0fc280ff6b43cccc07a7577166fd3993","responseTime":8,"status":200,"url":"/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9?"} gateway-1 | {"time_local":"18/Jun/2025:09:57:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0fc280ff6b43cccc07a7577166fd3993"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg","level":"info","message":"auth send jwt","requestID":"0cf55ee766659e866a991ba124ef4893"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0cf55ee766659e866a991ba124ef4893","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0cf55ee766659e866a991ba124ef4893"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1487,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1487,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.655874,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"0cf55ee766659e866a991ba124ef4893","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"0cf55ee766659e866a991ba124ef4893","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:59.184097400Z"}]},"request_id":"2ac52d3f-e0bb-4191-984f-6c385740bb8e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.2718909} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"0cf55ee766659e866a991ba124ef4893","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0cf55ee766659e866a991ba124ef4893"} gateway-1 | {"time_local":"18/Jun/2025:09:57:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0cf55ee766659e866a991ba124ef4893"} device-1 | {"level":"info","message":"GET /devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5? 200 8ms","method":"GET","requestID":"0cf55ee766659e866a991ba124ef4893","responseTime":8,"status":200,"url":"/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg","level":"info","message":"auth send jwt","requestID":"2a991a086aab489130fa02734cb3b32a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2a991a086aab489130fa02734cb3b32a","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"2a991a086aab489130fa02734cb3b32a"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1488,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1488,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.6462,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2a991a086aab489130fa02734cb3b32a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2a991a086aab489130fa02734cb3b32a","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa"},"level":"info","message":"Attempting to run experiment","requestID":"2a991a086aab489130fa02734cb3b32a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa"},"level":"info","message":"Attempting to book experiment","requestID":"2a991a086aab489130fa02734cb3b32a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"2b09ff36-63ad-441f-91b2-7ccc2c1972c7\" in room \"http://localhost/rooms/da9cb60c-e036-4fc5-ac77-c32eaaecf316\"","requestID":"90f79f10-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"d2219bc8-8d70-429b-8f44-2bbcc8be3817\" in room \"http://localhost/rooms/da9cb60c-e036-4fc5-ac77-c32eaaecf316\"","requestID":"90f7ed30-4c2a-11f0-b702-8b8a85c3ad9a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa"},"level":"info","message":"Successfully booked experiment","requestID":"2a991a086aab489130fa02734cb3b32a"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"93f43d40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"93f46450-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1489,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1489,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.642765,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1490,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"93f43d40-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"93f43d40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1490,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.567091,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"93f46450-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"93f46450-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:59.095845325Z"}]},"request_id":"7b59ff5e-a8b8-47e0-b347-ac8b98c27fa7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.3150625} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"93f43d40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:59.184097400Z"}]},"request_id":"4cac8b8b-a3d1-4a54-88ed-77b2069b270b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.3156736} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"93f46450-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"93f43d40-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9? 200 12ms","method":"GET","requestID":"93f43d40-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"93f46450-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5? 200 12ms","method":"GET","requestID":"93f46450-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa"},"level":"info","message":"Setting up experiment","requestID":"2a991a086aab489130fa02734cb3b32a"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"2a991a086aab489130fa02734cb3b32a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"2a991a086aab489130fa02734cb3b32a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa"},"level":"info","message":"Successfully locked booking for experiment","requestID":"2a991a086aab489130fa02734cb3b32a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa"},"level":"info","message":"Successfully set up experiment","requestID":"2a991a086aab489130fa02734cb3b32a"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"93fe2850-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"93fe4f60-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa"},"level":"info","message":"Successfully running experiment","requestID":"2a991a086aab489130fa02734cb3b32a"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1491,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1491,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.695572,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1492,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"93fe2850-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"93fe2850-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1492,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.604575,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"93fe4f60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"93fe4f60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:59.095845325Z"}]},"request_id":"1cb92c1f-3998-41af-854a-157d4003aba2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.3825963} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"93fe2850-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:59.184097400Z"}]},"request_id":"bcf5143d-c53b-4509-9d83-9fb866e38cb0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.3834236} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"93fe4f60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"93fe2850-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F90ad39e0-12aa-431c-bd6e-b848218360fa#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F90ad39e0-12aa-431c-bd6e-b848218360fa","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"e0439834-cb77-4e6a-a337-dbf107a22ac3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.387477} device-1 | {"level":"info","message":"GET /devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9? 200 14ms","method":"GET","requestID":"93fe2850-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"93fe4f60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5? 200 14ms","method":"GET","requestID":"93fe4f60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8bb09214-0db9-4512-a6ad-f4dce08a8a3f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.3877296} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"2a991a086aab489130fa02734cb3b32a","responseTime":10,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"9400e770-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1493,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"2a991a086aab489130fa02734cb3b32a"} gateway-1 | {"time_local":"18/Jun/2025:09:57:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1220","request_time":"0.145","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2a991a086aab489130fa02734cb3b32a"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ae523155-48fe-4d35-b905-e11edaef90f6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.4203925} experiment-1 | {"level":"info","message":"POST /experiments? 201 142ms","method":"POST","requestID":"2a991a086aab489130fa02734cb3b32a","responseTime":142,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1493,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.40041,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9400e770-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"9400e770-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg","level":"info","message":"auth send jwt","requestID":"08c16fcbe3265bbb823ddd9f213d0aeb"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"08c16fcbe3265bbb823ddd9f213d0aeb","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"9400e770-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9/signaling 200 34ms","method":"POST","requestID":"9400e770-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"08c16fcbe3265bbb823ddd9f213d0aeb"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"940665b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1494,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1494,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.693228,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1495,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"08c16fcbe3265bbb823ddd9f213d0aeb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"08c16fcbe3265bbb823ddd9f213d0aeb","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dedbffe7-e974-47a4-bcb2-e11b26b36ac9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.4314647} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1495,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.749624,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"940665b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"940665b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:59.095845325Z"}]},"request_id":"3f88b0cf-879d-4e9d-b190-50b637fd337f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.4332619} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"08c16fcbe3265bbb823ddd9f213d0aeb","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"940665b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5/signaling 200 11ms","method":"POST","requestID":"940665b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"08c16fcbe3265bbb823ddd9f213d0aeb"} device-1 | {"level":"info","message":"GET /devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9? 200 14ms","method":"GET","requestID":"08c16fcbe3265bbb823ddd9f213d0aeb","responseTime":14,"status":200,"url":"/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9?"} gateway-1 | {"time_local":"18/Jun/2025:09:57:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"08c16fcbe3265bbb823ddd9f213d0aeb"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"2a991a086aab489130fa02734cb3b32a"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"94086180-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg","level":"info","message":"auth send jwt","requestID":"9781d30e7c732df80e11885f6f1ffe34"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1496,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authentication-1 | {"level":"info","message":"GET /auth 200 28ms","method":"GET","requestID":"9781d30e7c732df80e11885f6f1ffe34","responseTime":28,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"940c3210-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1497,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"9781d30e7c732df80e11885f6f1ffe34"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1496,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.882657,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"94086180-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"94086180-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1497,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.782902,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"940c3210-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"940c3210-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1498,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1498,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.638273,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9781d30e7c732df80e11885f6f1ffe34","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"9781d30e7c732df80e11885f6f1ffe34","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:59.095845325Z"}]},"request_id":"ba1b4b21-bd04-4dad-ab80-181769378cf6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.4721856} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:59.184097400Z"}]},"request_id":"48eb4bac-937a-4678-a75f-03eef2013c1f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.472916} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"94086180-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"940c3210-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:56:59.184097400Z"}]},"request_id":"583ccc76-ac3d-4302-8463-393a4648db68","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.4761221} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"9781d30e7c732df80e11885f6f1ffe34","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"94086180-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9? 200 39ms","method":"GET","requestID":"94086180-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":39,"status":200,"url":"/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"940c3210-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5? 200 16ms","method":"GET","requestID":"940c3210-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":16,"status":200,"url":"/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"9781d30e7c732df80e11885f6f1ffe34"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa"},"level":"info","message":"Building connection plan","requestID":"2a991a086aab489130fa02734cb3b32a"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"46179a8e-8a2d-4af1-81cb-d339ec5a0401"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"aa27a7d9-1fa5-40ea-af7d-8fc42bdea884"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"c9bdaf90-3c51-4e90-984f-33d4ac4375b0"}]},"level":"info","message":"Built pairwise service configurations","requestID":"2a991a086aab489130fa02734cb3b32a"} gateway-1 | {"time_local":"18/Jun/2025:09:57:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9781d30e7c732df80e11885f6f1ffe34"} device-1 | {"level":"info","message":"GET /devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5? 200 14ms","method":"GET","requestID":"9781d30e7c732df80e11885f6f1ffe34","responseTime":14,"status":200,"url":"/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5?"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"940ef130-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"940ef130-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"POST /rooms 201 1ms","method":"POST","requestID":"940ef130-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":1,"status":201,"url":"/rooms"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/4c28e906-04e2-4443-9b4c-9d6af8487efa?id=a9c9aca9-52da-489f-ad3b-3d60488fb619","ws://localhost/rooms/4c28e906-04e2-4443-9b4c-9d6af8487efa?id=4e1e8ffe-04b4-4423-b49b-697bbcd2d132"]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"2a991a086aab489130fa02734cb3b32a"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"940f6660-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1499,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1499,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.637332,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"940f6660-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"940f6660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":26,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"fcc3c582-107c-4bfd-80f6-205e12cc24bc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.519295} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1b2a226a-3a45-46f7-bdf5-2d0b8ce0da77","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.519444} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"940f6660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"940f6660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"940f6660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b'","requestID":"940f6660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b'","requestID":"940f6660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"940f6660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 44ms","method":"POST","requestID":"940f6660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":44,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"940f6660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"941b4d40-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"a9c9aca9-52da-489f-ad3b-3d60488fb619\" in room \"http://localhost/rooms/4c28e906-04e2-4443-9b4c-9d6af8487efa\"","requestID":"941b4d40-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"941b4d40-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"941b9b60-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"4e1e8ffe-04b4-4423-b49b-697bbcd2d132\" in room \"http://localhost/rooms/4c28e906-04e2-4443-9b4c-9d6af8487efa\"","requestID":"941b9b60-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"941b9b60-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"eebb6c526d2d368ca01fee8cdc0f23cb","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"a9c9aca9-52da-489f-ad3b-3d60488fb619\" in room \"http://localhost/rooms/4c28e906-04e2-4443-9b4c-9d6af8487efa\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"a9c9aca9-52da-489f-ad3b-3d60488fb619\" in room \"http://localhost/rooms/4c28e906-04e2-4443-9b4c-9d6af8487efa\""} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"eebb6c526d2d368ca01fee8cdc0f23cb","responseTime":1,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"a9c9aca9-52da-489f-ad3b-3d60488fb619\" in room \"http://localhost/rooms/4c28e906-04e2-4443-9b4c-9d6af8487efa\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"a9c9aca9-52da-489f-ad3b-3d60488fb619\" in room \"http://localhost/rooms/4c28e906-04e2-4443-9b4c-9d6af8487efa\""} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b"}}},"level":"info","message":"received a callback","requestID":"eebb6c526d2d368ca01fee8cdc0f23cb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"eebb6c526d2d368ca01fee8cdc0f23cb","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:57:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"eebb6c526d2d368ca01fee8cdc0f23cb"} device-1 | {"data":{"peerconnection":"151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"2a991a086aab489130fa02734cb3b32a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"94231570-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"data":{"peerconnection":"151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1500,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"32c4da90-3ae6-42e2-9316-0a32eadcf5a3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.6196759} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1500,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.56406,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"94231570-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"94231570-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"94231570-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9/signaling 200 12ms","method":"POST","requestID":"94231570-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9/signaling"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"3e4608910c2dc58022b67489cd28f727","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3e4608910c2dc58022b67489cd28f727","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"94255f60-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b"}}},"level":"info","message":"received a callback","requestID":"3e4608910c2dc58022b67489cd28f727"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1501,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9076cd9c-98ef-4e25-bfc9-e7aada571c06","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.6580863} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1501,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.527917,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"94255f60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"94255f60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"942a1a50-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1502,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"94255f60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5/signaling 200 33ms","method":"POST","requestID":"94255f60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"994110d9-6d9c-4aab-bc25-42ad7f98763c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.6647794} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1502,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.395149,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"942a1a50-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"942a1a50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"942a1a50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b 200 7ms","method":"GET","requestID":"942a1a50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/peerconnections/151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg","level":"info","message":"auth send jwt","requestID":"18aaa3b9cd705043b75f21cfbf212e00"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"18aaa3b9cd705043b75f21cfbf212e00","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/90ad39e0-12aa-431c-bd6e-b848218360fa","requestID":"18aaa3b9cd705043b75f21cfbf212e00"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1503,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1503,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.508591,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"18aaa3b9cd705043b75f21cfbf212e00","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"18aaa3b9cd705043b75f21cfbf212e00","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 78ms","method":"POST","requestID":"3e4608910c2dc58022b67489cd28f727","responseTime":78,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:57:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.082","http_referrer":"","http_user_agent":"node-fetch","requestID":"3e4608910c2dc58022b67489cd28f727"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"94316d50-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/90ad39e0-12aa-431c-bd6e-b848218360fa","requestID":"18aaa3b9cd705043b75f21cfbf212e00"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1504,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} gateway-1 | {"time_local":"18/Jun/2025:09:57:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/90ad39e0-12aa-431c-bd6e-b848218360fa HTTP/1.1","status": "200","body_bytes_sent":"1293","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"18aaa3b9cd705043b75f21cfbf212e00"} experiment-1 | {"level":"info","message":"GET /experiments/90ad39e0-12aa-431c-bd6e-b848218360fa 200 39ms","method":"GET","requestID":"18aaa3b9cd705043b75f21cfbf212e00","responseTime":39,"status":200,"url":"/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"813b6707-0b4c-4426-be27-a3850e55a010","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.7141192} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1504,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.777435,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"94316d50-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg","level":"info","message":"auth send jwt","requestID":"c2e609077df03b87d328fe0fc0eedf0e"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"94316d50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c2e609077df03b87d328fe0fc0eedf0e","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/90ad39e0-12aa-431c-bd6e-b848218360fa","requestID":"c2e609077df03b87d328fe0fc0eedf0e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"94316d50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5/signaling 200 9ms","method":"POST","requestID":"94316d50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5/signaling"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1505,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1505,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.694455,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"94331b00-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c2e609077df03b87d328fe0fc0eedf0e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"c2e609077df03b87d328fe0fc0eedf0e","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1506,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7067d337-db5e-4abb-9cbe-0ea37acf0c53","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.726112} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1506,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.173412,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"94331b00-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"94331b00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa"},"level":"info","message":"Attempting to finish experiment","requestID":"c2e609077df03b87d328fe0fc0eedf0e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"94331b00-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9/signaling 200 36ms","method":"POST","requestID":"94331b00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9/signaling"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"9438c050-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1507,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1507,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.891846,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9438c050-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"9438c050-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:57:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/4c28e906-04e2-4443-9b4c-9d6af8487efa?id=a9c9aca9-52da-489f-ad3b-3d60488fb619 HTTP/1.1","status": "101","body_bytes_sent":"458","request_time":"0.203","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"8d175675fbf97eca4302a76030724f6c"} gateway-1 | {"time_local":"18/Jun/2025:09:57:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/4c28e906-04e2-4443-9b4c-9d6af8487efa?id=4e1e8ffe-04b4-4423-b49b-697bbcd2d132 HTTP/1.1","status": "101","body_bytes_sent":"0","request_time":"0.204","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"d048df763a016bbcd38c52dcdf96ed28"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"a9c9aca9-52da-489f-ad3b-3d60488fb619\" in room \"http://localhost/rooms/4c28e906-04e2-4443-9b4c-9d6af8487efa\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"a9c9aca9-52da-489f-ad3b-3d60488fb619\" from room \"http://localhost/rooms/4c28e906-04e2-4443-9b4c-9d6af8487efa\", code: 1006, reason: "} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"4e1e8ffe-04b4-4423-b49b-697bbcd2d132\" in room \"http://localhost/rooms/4c28e906-04e2-4443-9b4c-9d6af8487efa\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"4e1e8ffe-04b4-4423-b49b-697bbcd2d132\" from room \"http://localhost/rooms/4c28e906-04e2-4443-9b4c-9d6af8487efa\", code: 1006, reason: "} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"df81061784278fc5d86512975cacf8bf","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"df81061784278fc5d86512975cacf8bf","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2b9776c2ed171eb29ce93165174ba452","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b"}}},"level":"info","message":"received a callback","requestID":"df81061784278fc5d86512975cacf8bf"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2b9776c2ed171eb29ce93165174ba452","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b"}}},"level":"info","message":"received a callback","requestID":"2b9776c2ed171eb29ce93165174ba452"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"d7c50456-e6e9-47b6-8508-a79a3d8ee781","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.776697} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2e67b32f-d73a-45f8-8c5e-e2c5ae9c493a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.8009937} authorization-1 | {"level":"info","message":"POST /relations/update 200 34ms","method":"POST","requestID":"9438c050-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"9438c050-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b 204 54ms","method":"DELETE","requestID":"9438c050-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":54,"status":204,"url":"/peerconnections/151cf4cb-7cb9-4e37-bda9-a6c5c5174a5b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa"},"level":"info","message":"Successfully finished experiment","requestID":"c2e609077df03b87d328fe0fc0eedf0e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"9442f980-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1508,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03627bc6-6d33-494c-b8c2-eab2d2b833b5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e66d6834-9851-4952-af90-137fa37c6c3c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.8516855} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1508,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.278533,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9442f980-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"9442f980-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"9442f980-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5/signaling 200 31ms","method":"POST","requestID":"9442f980-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"94480290-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1509,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F90ad39e0-12aa-431c-bd6e-b848218360fa': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F90ad39e0-12aa-431c-bd6e-b848218360fa","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"8d573014-f272-443e-879c-87c31c2c9166","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.8609557} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"647360f0-448a-4310-afc2-0f851df5453b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.8611696} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2a9aa2da-cc8f-4cb5-a0e5-00b51bcc89b2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240620.861226} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1509,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.262129,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"94480290-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"94480290-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"c2e609077df03b87d328fe0fc0eedf0e","responseTime":40,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"94480290-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9/signaling 200 8ms","method":"POST","requestID":"94480290-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/90ad39e0-12aa-431c-bd6e-b848218360fa","requestID":"c2e609077df03b87d328fe0fc0eedf0e"} gateway-1 | {"time_local":"18/Jun/2025:09:57:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/90ad39e0-12aa-431c-bd6e-b848218360fa HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.246","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c2e609077df03b87d328fe0fc0eedf0e"} experiment-1 | {"level":"info","message":"DELETE /experiments/90ad39e0-12aa-431c-bd6e-b848218360fa 204 242ms","method":"DELETE","requestID":"c2e609077df03b87d328fe0fc0eedf0e","responseTime":242,"status":204,"url":"/experiments/90ad39e0-12aa-431c-bd6e-b848218360fa"} gateway-1 | {"time_local":"18/Jun/2025:09:57:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1969","request_time":"0.763","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"f2f92192fc8e8b745ba1bd5cbde5f798"} gateway-1 | {"time_local":"18/Jun/2025:09:57:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1968","request_time":"0.727","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"f0b15098ea6a456568662197c1e1e5f3"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 188ms","method":"POST","requestID":"df81061784278fc5d86512975cacf8bf","responseTime":188,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 188ms","method":"POST","requestID":"2b9776c2ed171eb29ce93165174ba452","responseTime":188,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg","level":"info","message":"auth send jwt","requestID":"708a1902a81a2ab8282709ec48ac6c86"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"708a1902a81a2ab8282709ec48ac6c86","responseTime":3,"status":200,"url":"/auth"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/03627bc6-6d33-494c-b8c2-eab2d2b833b5' closed"} gateway-1 | {"time_local":"18/Jun/2025:09:57:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.194","http_referrer":"","http_user_agent":"node-fetch","requestID":"df81061784278fc5d86512975cacf8bf"} gateway-1 | {"time_local":"18/Jun/2025:09:57:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.194","http_referrer":"","http_user_agent":"node-fetch","requestID":"2b9776c2ed171eb29ce93165174ba452"} device-1 | {"level":"info","message":"postDevices called","requestID":"708a1902a81a2ab8282709ec48ac6c86"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1510,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:00Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1510,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":25.209569,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:00Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/b87fa8eb-1513-4271-b81a-2c6e9b1ceeb9' closed"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"708a1902a81a2ab8282709ec48ac6c86","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240620,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMH0.RH-ImWoywDNEt2CZwAyliQDNbLi1To_vOiMAVnjw_Gg"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"708a1902a81a2ab8282709ec48ac6c86","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f89dff4a-a127-4e2d-9ffd-17d67a5a2efd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240621.0055358} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"708a1902a81a2ab8282709ec48ac6c86","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bdee3cac-26d7-4b7a-9e86-6c1c15dfe1cc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240621.0104094} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"708a1902a81a2ab8282709ec48ac6c86","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"896dfdbf-8de0-4817-ba3b-0d9855732d90","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240621.0473664} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"02c5cf8f-be64-4c12-8cca-ff3899f4035e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240621.0475297} authorization-1 | {"level":"info","message":"POST /relations/update 200 41ms","method":"POST","requestID":"708a1902a81a2ab8282709ec48ac6c86","responseTime":41,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:01.047318398Z"}]},"request_id":"59458b92-1967-49ee-be17-2470da0fc719","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240621.0534163} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"708a1902a81a2ab8282709ec48ac6c86","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"708a1902a81a2ab8282709ec48ac6c86"} gateway-1 | {"time_local":"18/Jun/2025:09:57:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.095","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"708a1902a81a2ab8282709ec48ac6c86"} device-1 | {"level":"info","message":"POST /devices? 201 90ms","method":"POST","requestID":"708a1902a81a2ab8282709ec48ac6c86","responseTime":90,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMX0.3oTDiIYVvv9QbWw_mwqzkzp-E7HSnl-9dYqJSq7WSGY","level":"info","message":"auth send jwt","requestID":"fce5e27ca486aacd1e1fc55c0d342eab"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fce5e27ca486aacd1e1fc55c0d342eab","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"fce5e27ca486aacd1e1fc55c0d342eab"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1511,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:01Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1511,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.737717,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"fce5e27ca486aacd1e1fc55c0d342eab","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240621,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMX0.3oTDiIYVvv9QbWw_mwqzkzp-E7HSnl-9dYqJSq7WSGY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"fce5e27ca486aacd1e1fc55c0d342eab","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9e564f12-c999-4454-8e81-9032380448b5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240621.1002529} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"fce5e27ca486aacd1e1fc55c0d342eab","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"becf38a3-1fb4-4887-bb7b-a43844409458","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240621.1044912} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"fce5e27ca486aacd1e1fc55c0d342eab","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"b08bfd4a-54a4-41c0-b679-3fe9e57f6b0c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240621.1371858} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"be54a0e7-2e2c-4d09-bb3f-c2f556f9b011","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240621.137387} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"fce5e27ca486aacd1e1fc55c0d342eab","responseTime":35,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:01.137151141Z"}]},"request_id":"df7f2dcd-8771-4b7a-af36-d2acc948abc2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240621.1417046} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"fce5e27ca486aacd1e1fc55c0d342eab","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"fce5e27ca486aacd1e1fc55c0d342eab"} gateway-1 | {"time_local":"18/Jun/2025:09:57:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"445","request_time":"0.087","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fce5e27ca486aacd1e1fc55c0d342eab"} device-1 | {"level":"info","message":"POST /devices? 201 83ms","method":"POST","requestID":"fce5e27ca486aacd1e1fc55c0d342eab","responseTime":83,"status":201,"url":"/devices?"} forwarding-1 | {"level":"info","message":"Participant \"6f45b8a0-15ed-40a9-bf20-c4c69cf2afc3\" in room \"http://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda\" did not answer hearbeat check, closing connection","requestID":"8eff0360-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"d23834ca-86fe-4a86-afa9-f0b949082017\" in room \"http://localhost/rooms/ee38c03b-a04f-494d-a8e8-f99cfce51bda\" did not answer hearbeat check, closing connection","requestID":"8f032210-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s","level":"info","message":"auth send jwt","requestID":"46e9e34df0af88e830cbf80c477f403b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"46e9e34df0af88e830cbf80c477f403b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"46e9e34df0af88e830cbf80c477f403b"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1512,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1512,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.887332,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"46e9e34df0af88e830cbf80c477f403b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"46e9e34df0af88e830cbf80c477f403b","responseTime":3,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s","level":"info","message":"auth send jwt","requestID":"7a37c2d4211920483cdda6837aeb8978"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"7a37c2d4211920483cdda6837aeb8978","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"7a37c2d4211920483cdda6837aeb8978"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1513,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1513,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.911194,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"7a37c2d4211920483cdda6837aeb8978","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7a37c2d4211920483cdda6837aeb8978","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:01.047318398Z"}]},"request_id":"e41d2dc4-6b86-49e5-bae6-c75a63455e24","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.1016777} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"46e9e34df0af88e830cbf80c477f403b","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e3720c78-affe-4649-b877-09e2398f9ffd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.1063645} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"46e9e34df0af88e830cbf80c477f403b","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:01.137151141Z"}]},"request_id":"d4893596-4610-4727-a3df-ef038e1325e4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.1073213} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"7a37c2d4211920483cdda6837aeb8978","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5806a433-7d1f-48f4-8a8c-a69e82e98824","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.1112058} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"7a37c2d4211920483cdda6837aeb8978","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:01.047318398Z"}]},"request_id":"0acac6b9-dd48-4a55-9f39-08068529e2ee","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.1159656} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"46e9e34df0af88e830cbf80c477f403b","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"46e9e34df0af88e830cbf80c477f403b"} device-1 | {"level":"info","message":"PATCH /devices/742d181a-2c58-4475-bea2-e80de93cbb65 200 50ms","method":"PATCH","requestID":"46e9e34df0af88e830cbf80c477f403b","responseTime":50,"status":200,"url":"/devices/742d181a-2c58-4475-bea2-e80de93cbb65"} gateway-1 | {"time_local":"18/Jun/2025:09:57:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/742d181a-2c58-4475-bea2-e80de93cbb65 HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.054","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"46e9e34df0af88e830cbf80c477f403b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s","level":"info","message":"auth send jwt","requestID":"d748015101307cbb74263f8bd0b851e2"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"d748015101307cbb74263f8bd0b851e2","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"d748015101307cbb74263f8bd0b851e2"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:01.137151141Z"}]},"request_id":"bf0e7596-717a-4960-a464-c1b9af8f95ba","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.1525025} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"7a37c2d4211920483cdda6837aeb8978","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1514,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1514,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.630422,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"7a37c2d4211920483cdda6837aeb8978"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d748015101307cbb74263f8bd0b851e2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} device-1 | {"level":"info","message":"PATCH /devices/9acc4cee-5561-4b0a-9906-a51e044da6b8 200 57ms","method":"PATCH","requestID":"7a37c2d4211920483cdda6837aeb8978","responseTime":57,"status":200,"url":"/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8"} gateway-1 | {"time_local":"18/Jun/2025:09:57:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/9acc4cee-5561-4b0a-9906-a51e044da6b8 HTTP/1.1","status": "200","body_bytes_sent":"1340","request_time":"0.086","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"7a37c2d4211920483cdda6837aeb8978"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d748015101307cbb74263f8bd0b851e2","responseTime":3,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s","level":"info","message":"auth send jwt","requestID":"665484006d3aca71dea651031f5bb8c0"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"665484006d3aca71dea651031f5bb8c0","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"665484006d3aca71dea651031f5bb8c0"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1515,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1515,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.444513,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"665484006d3aca71dea651031f5bb8c0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"665484006d3aca71dea651031f5bb8c0","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"d748015101307cbb74263f8bd0b851e2"} gateway-1 | {"time_local":"18/Jun/2025:09:57:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/742d181a-2c58-4475-bea2-e80de93cbb65/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.047","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"d748015101307cbb74263f8bd0b851e2"} device-1 | {"level":"info","message":"POST /devices/742d181a-2c58-4475-bea2-e80de93cbb65/websocket 200 16ms","method":"POST","requestID":"d748015101307cbb74263f8bd0b851e2","responseTime":16,"status":200,"url":"/devices/742d181a-2c58-4475-bea2-e80de93cbb65/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"665484006d3aca71dea651031f5bb8c0"} gateway-1 | {"time_local":"18/Jun/2025:09:57:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/9acc4cee-5561-4b0a-9906-a51e044da6b8/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.045","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"665484006d3aca71dea651031f5bb8c0"} device-1 | {"level":"info","message":"POST /devices/9acc4cee-5561-4b0a-9906-a51e044da6b8/websocket 200 42ms","method":"POST","requestID":"665484006d3aca71dea651031f5bb8c0","responseTime":42,"status":200,"url":"/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s","level":"info","message":"auth send jwt","requestID":"d3ecd1e280568f777ba20c4f72691bd9"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d3ecd1e280568f777ba20c4f72691bd9","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d3ecd1e280568f777ba20c4f72691bd9"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1516,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1516,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.693831,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d3ecd1e280568f777ba20c4f72691bd9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d3ecd1e280568f777ba20c4f72691bd9","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:01.047318398Z"}]},"request_id":"161dbf87-1332-43b8-a43a-f14c681aca83","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.2507706} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d3ecd1e280568f777ba20c4f72691bd9","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d3ecd1e280568f777ba20c4f72691bd9"} device-1 | {"level":"info","message":"GET /devices/742d181a-2c58-4475-bea2-e80de93cbb65? 200 8ms","method":"GET","requestID":"d3ecd1e280568f777ba20c4f72691bd9","responseTime":8,"status":200,"url":"/devices/742d181a-2c58-4475-bea2-e80de93cbb65?"} gateway-1 | {"time_local":"18/Jun/2025:09:57:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/742d181a-2c58-4475-bea2-e80de93cbb65? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d3ecd1e280568f777ba20c4f72691bd9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s","level":"info","message":"auth send jwt","requestID":"f18229fe343ccd7f8fd61ff822683a6b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f18229fe343ccd7f8fd61ff822683a6b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"f18229fe343ccd7f8fd61ff822683a6b"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1517,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1517,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.720776,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f18229fe343ccd7f8fd61ff822683a6b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f18229fe343ccd7f8fd61ff822683a6b","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:01.137151141Z"}]},"request_id":"b03fb7c6-e327-48da-b27a-8a42a75962c6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.263841} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"f18229fe343ccd7f8fd61ff822683a6b","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"f18229fe343ccd7f8fd61ff822683a6b"} gateway-1 | {"time_local":"18/Jun/2025:09:57:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9acc4cee-5561-4b0a-9906-a51e044da6b8? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f18229fe343ccd7f8fd61ff822683a6b"} device-1 | {"level":"info","message":"GET /devices/9acc4cee-5561-4b0a-9906-a51e044da6b8? 200 33ms","method":"GET","requestID":"f18229fe343ccd7f8fd61ff822683a6b","responseTime":33,"status":200,"url":"/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s","level":"info","message":"auth send jwt","requestID":"548b1d645e5743b549442851e25b503d"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"548b1d645e5743b549442851e25b503d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"548b1d645e5743b549442851e25b503d","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1518,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1518,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.753775,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"548b1d645e5743b549442851e25b503d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"548b1d645e5743b549442851e25b503d","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0cb946b9-8d39-44d8-8248-247621590c26"},"level":"info","message":"Attempting to run experiment","requestID":"548b1d645e5743b549442851e25b503d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0cb946b9-8d39-44d8-8248-247621590c26"},"level":"info","message":"Attempting to book experiment","requestID":"548b1d645e5743b549442851e25b503d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0cb946b9-8d39-44d8-8248-247621590c26"},"level":"info","message":"Successfully booked experiment","requestID":"548b1d645e5743b549442851e25b503d"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"952b36a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"952b5db0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1519,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1519,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.612234,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"952b36a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"952b36a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1520,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1520,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.597055,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"952b5db0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"952b5db0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:01.047318398Z"}]},"request_id":"5cea51bb-230c-4791-96ef-887ab3f7651f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.354089} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"952b36a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:01.137151141Z"}]},"request_id":"1ba6463e-c86c-4afc-809c-a1d60d5547aa","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.354669} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"952b5db0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"952b36a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/742d181a-2c58-4475-bea2-e80de93cbb65? 200 12ms","method":"GET","requestID":"952b36a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/742d181a-2c58-4475-bea2-e80de93cbb65?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"952b5db0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/9acc4cee-5561-4b0a-9906-a51e044da6b8? 200 11ms","method":"GET","requestID":"952b5db0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0cb946b9-8d39-44d8-8248-247621590c26"},"level":"info","message":"Setting up experiment","requestID":"548b1d645e5743b549442851e25b503d"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"548b1d645e5743b549442851e25b503d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0cb946b9-8d39-44d8-8248-247621590c26"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"548b1d645e5743b549442851e25b503d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0cb946b9-8d39-44d8-8248-247621590c26"},"level":"info","message":"Successfully locked booking for experiment","requestID":"548b1d645e5743b549442851e25b503d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0cb946b9-8d39-44d8-8248-247621590c26"},"level":"info","message":"Successfully set up experiment","requestID":"548b1d645e5743b549442851e25b503d"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"95343750-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"95345e60-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0cb946b9-8d39-44d8-8248-247621590c26"},"level":"info","message":"Successfully running experiment","requestID":"548b1d645e5743b549442851e25b503d"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1521,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1521,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.705104,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1522,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"95343750-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"95343750-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1522,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.734625,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"95345e60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"95345e60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:01.047318398Z"}]},"request_id":"6c14240d-154e-4323-ad7d-fce29a8ca7a1","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.4371681} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"95343750-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:01.137151141Z"}]},"request_id":"984e8cfc-4b9f-4f8a-8c50-04afc8d72a9e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.437783} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"95345e60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"95343750-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/742d181a-2c58-4475-bea2-e80de93cbb65? 200 36ms","method":"GET","requestID":"95343750-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":36,"status":200,"url":"/devices/742d181a-2c58-4475-bea2-e80de93cbb65?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"95345e60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/9acc4cee-5561-4b0a-9906-a51e044da6b8? 200 35ms","method":"GET","requestID":"95345e60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0cb946b9-8d39-44d8-8248-247621590c26#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0cb946b9-8d39-44d8-8248-247621590c26","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"c9f380a6-be0a-4e49-89c4-14eddb379e67","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.4443965} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"953a2ac0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1f4a4e7a-6d4f-424d-9803-ae1534fab96c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.4447255} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"548b1d645e5743b549442851e25b503d","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1523,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"98eb0307-afe1-44aa-bb4d-676126b2cf49","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.4487443} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1523,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.474444,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"953a2ac0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"953a2ac0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/0cb946b9-8d39-44d8-8248-247621590c26","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"548b1d645e5743b549442851e25b503d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"953a2ac0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"level":"info","message":"POST /experiments? 201 158ms","method":"POST","requestID":"548b1d645e5743b549442851e25b503d","responseTime":158,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"POST /devices/742d181a-2c58-4475-bea2-e80de93cbb65/signaling 200 9ms","method":"POST","requestID":"953a2ac0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/742d181a-2c58-4475-bea2-e80de93cbb65/signaling"} gateway-1 | {"time_local":"18/Jun/2025:09:57:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1220","request_time":"0.161","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"548b1d645e5743b549442851e25b503d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"953bd870-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s","level":"info","message":"auth send jwt","requestID":"e01f4e56a2c70ad1ccfd3e46d49555c9"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e01f4e56a2c70ad1ccfd3e46d49555c9","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"e01f4e56a2c70ad1ccfd3e46d49555c9"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1524,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1525,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1525,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.616986,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1524,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.373297,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"21a49e10-8ea8-42c1-b521-85180d9cba49","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.4831188} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e01f4e56a2c70ad1ccfd3e46d49555c9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"e01f4e56a2c70ad1ccfd3e46d49555c9","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"953bd870-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 32ms","method":"POST","requestID":"953bd870-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:01.047318398Z"}]},"request_id":"4b21d01c-c126-4df6-b87d-6b3fdd7896b9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.4899695} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"953bd870-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/9acc4cee-5561-4b0a-9906-a51e044da6b8/signaling 200 35ms","method":"POST","requestID":"953bd870-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"e01f4e56a2c70ad1ccfd3e46d49555c9","responseTime":2,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0cb946b9-8d39-44d8-8248-247621590c26"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"548b1d645e5743b549442851e25b503d"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"95417dc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"9541a4d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"e01f4e56a2c70ad1ccfd3e46d49555c9"} gateway-1 | {"time_local":"18/Jun/2025:09:57:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/742d181a-2c58-4475-bea2-e80de93cbb65? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e01f4e56a2c70ad1ccfd3e46d49555c9"} device-1 | {"level":"info","message":"GET /devices/742d181a-2c58-4475-bea2-e80de93cbb65? 200 13ms","method":"GET","requestID":"e01f4e56a2c70ad1ccfd3e46d49555c9","responseTime":13,"status":200,"url":"/devices/742d181a-2c58-4475-bea2-e80de93cbb65?"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1526,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1526,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.911927,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1527,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"95417dc0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"95417dc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1527,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.569184,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9541a4d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"9541a4d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s","level":"info","message":"auth send jwt","requestID":"81d572cbf3aeb4d8133addca1a79d073"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"81d572cbf3aeb4d8133addca1a79d073","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"81d572cbf3aeb4d8133addca1a79d073"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:01.047318398Z"}]},"request_id":"c8d7a0d4-f916-4850-9a0f-b58470087079","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.4995558} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"95417dc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:01.137151141Z"}]},"request_id":"7c9cf90a-7160-4e6e-88f6-1bbc396093b3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.5001929} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"9541a4d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"95417dc0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1528,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} device-1 | {"level":"info","message":"GET /devices/742d181a-2c58-4475-bea2-e80de93cbb65? 200 10ms","method":"GET","requestID":"95417dc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/742d181a-2c58-4475-bea2-e80de93cbb65?"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1528,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.883704,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"81d572cbf3aeb4d8133addca1a79d073","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"9541a4d0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"81d572cbf3aeb4d8133addca1a79d073","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"GET /devices/9acc4cee-5561-4b0a-9906-a51e044da6b8? 200 12ms","method":"GET","requestID":"9541a4d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0cb946b9-8d39-44d8-8248-247621590c26"},"level":"info","message":"Building connection plan","requestID":"548b1d645e5743b549442851e25b503d"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device1","serviceId":"electrical","uuid":"688d42d1-b981-45cf-9611-85d3cd22a9da"},{"config":{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}]},"role":"device2","serviceId":"electrical","uuid":"4443a752-b0ae-42f1-ac50-5b3734eabbf4"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"8d45fa0a-c617-4cd7-84d1-66330518b788"}]},"level":"info","message":"Built pairwise service configurations","requestID":"548b1d645e5743b549442851e25b503d"} forwarding-1 | {"level":"info","message":"postRooms called","requestID":"9543c7b0-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"postRooms succeeded","requestID":"9543c7b0-4c2a-11f0-b702-8b8a85c3ad9a"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:01.137151141Z"}]},"request_id":"71d0fc0c-17a7-4fab-9f1c-071400620fb7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.5076907} forwarding-1 | {"level":"info","message":"POST /rooms 201 1ms","method":"POST","requestID":"9543c7b0-4c2a-11f0-b702-8b8a85c3ad9a","responseTime":1,"status":201,"url":"/rooms"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"81d572cbf3aeb4d8133addca1a79d073","responseTime":2,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"webSocketUrls":["ws://localhost/rooms/bb4e6b53-6cb8-484b-9aa1-7764d4d24eef?id=00345552-d3e6-442c-9e9a-4989ccd27fd9","ws://localhost/rooms/bb4e6b53-6cb8-484b-9aa1-7764d4d24eef?id=75942a5e-05a5-458a-a098-8d6b99205411"]},"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65"}],"type":"websocket"}]},"level":"info","message":"Built connection plan","requestID":"548b1d645e5743b549442851e25b503d"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"9547e660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"81d572cbf3aeb4d8133addca1a79d073"} gateway-1 | {"time_local":"18/Jun/2025:09:57:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9acc4cee-5561-4b0a-9906-a51e044da6b8? HTTP/1.1","status": "200","body_bytes_sent":"1339","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"81d572cbf3aeb4d8133addca1a79d073"} device-1 | {"level":"info","message":"GET /devices/9acc4cee-5561-4b0a-9906-a51e044da6b8? 200 37ms","method":"GET","requestID":"81d572cbf3aeb4d8133addca1a79d073","responseTime":37,"status":200,"url":"/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8?"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1529,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1529,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.730351,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9547e660-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"9547e660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"fee86276-95be-4ce5-b1c7-47135ca8c94f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.543765} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fb4a2c0e-c5e1-43eb-9130-7353bd8c7019","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.5439568} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"9547e660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"9547e660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"9547e660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/312fe4fc-8057-47ab-bfc1-85e832e0ea78'","requestID":"9547e660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/312fe4fc-8057-47ab-bfc1-85e832e0ea78'","requestID":"9547e660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"9547e660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 49ms","method":"POST","requestID":"9547e660-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":49,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"9547e660-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/312fe4fc-8057-47ab-bfc1-85e832e0ea78' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"312fe4fc-8057-47ab-bfc1-85e832e0ea78","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"95510e20-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"75942a5e-05a5-458a-a098-8d6b99205411\" in room \"http://localhost/rooms/bb4e6b53-6cb8-484b-9aa1-7764d4d24eef\"","requestID":"95510e20-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"95510e20-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"A new connection has been established!","requestID":"95513530-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"00345552-d3e6-442c-9e9a-4989ccd27fd9\" in room \"http://localhost/rooms/bb4e6b53-6cb8-484b-9aa1-7764d4d24eef\"","requestID":"95513530-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"dd02040a3bd83660378d772c31edad8a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} forwarding-1 | {"level":"info","message":"The newly established connection was handled successfully!","requestID":"95513530-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"00345552-d3e6-442c-9e9a-4989ccd27fd9\" in room \"http://localhost/rooms/bb4e6b53-6cb8-484b-9aa1-7764d4d24eef\""} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"dd02040a3bd83660378d772c31edad8a","responseTime":1,"status":200,"url":"/auth"} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"00345552-d3e6-442c-9e9a-4989ccd27fd9\" in room \"http://localhost/rooms/bb4e6b53-6cb8-484b-9aa1-7764d4d24eef\""} forwarding-1 | {"level":"info","message":"Starting forwarding-queue for participant \"00345552-d3e6-442c-9e9a-4989ccd27fd9\" in room \"http://localhost/rooms/bb4e6b53-6cb8-484b-9aa1-7764d4d24eef\""} forwarding-1 | {"level":"info","message":"Waiting for new messages in forwarding-queue for participant \"00345552-d3e6-442c-9e9a-4989ccd27fd9\" in room \"http://localhost/rooms/bb4e6b53-6cb8-484b-9aa1-7764d4d24eef\""} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65"}],"status":"connecting","type":"websocket","url":"http://localhost/peerconnections/312fe4fc-8057-47ab-bfc1-85e832e0ea78"}}},"level":"info","message":"received a callback","requestID":"dd02040a3bd83660378d772c31edad8a"} device-1 | {"data":{"peerconnection":"312fe4fc-8057-47ab-bfc1-85e832e0ea78","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 36ms","method":"POST","requestID":"dd02040a3bd83660378d772c31edad8a","responseTime":36,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:57:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch","requestID":"dd02040a3bd83660378d772c31edad8a"} device-1 | {"data":{"peerconnection":"312fe4fc-8057-47ab-bfc1-85e832e0ea78","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0cb946b9-8d39-44d8-8248-247621590c26"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"548b1d645e5743b549442851e25b503d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"95592470-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1530,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6fbde5ee-1809-4150-85f9-a9aa545f730e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.6524684} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1530,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.293877,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"95592470-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"95592470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/312fe4fc-8057-47ab-bfc1-85e832e0ea78' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"312fe4fc-8057-47ab-bfc1-85e832e0ea78","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"95592470-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/742d181a-2c58-4475-bea2-e80de93cbb65/signaling 200 35ms","method":"POST","requestID":"95592470-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":35,"status":200,"url":"/devices/742d181a-2c58-4475-bea2-e80de93cbb65/signaling"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"7823ec2b518e326879447937f8a45132","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7823ec2b518e326879447937f8a45132","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"955ef0d0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65"}],"status":"connected","type":"websocket","url":"http://localhost/peerconnections/312fe4fc-8057-47ab-bfc1-85e832e0ea78"}}},"level":"info","message":"received a callback","requestID":"7823ec2b518e326879447937f8a45132"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1531,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"469f8075-5f19-4308-ad1a-cb5d9df8f5d5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.6892774} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1531,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.25878,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"955fb420-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"955ef0d0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"955ef0d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1532,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"955ef0d0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/9acc4cee-5561-4b0a-9906-a51e044da6b8/signaling 200 8ms","method":"POST","requestID":"955ef0d0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8/signaling"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F312fe4fc-8057-47ab-bfc1-85e832e0ea78","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3547225a-287d-4717-8ea6-a87223d4ebaf","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.694074} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1532,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.649026,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/312fe4fc-8057-47ab-bfc1-85e832e0ea78","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"955fb420-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/312fe4fc-8057-47ab-bfc1-85e832e0ea78","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"955fb420-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"955fb420-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/312fe4fc-8057-47ab-bfc1-85e832e0ea78 200 7ms","method":"GET","requestID":"955fb420-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/peerconnections/312fe4fc-8057-47ab-bfc1-85e832e0ea78"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s","level":"info","message":"auth send jwt","requestID":"df4383ad112e026a92d84c01d77a509a"} authentication-1 | {"level":"info","message":"GET /auth 200 24ms","method":"GET","requestID":"df4383ad112e026a92d84c01d77a509a","responseTime":24,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/0cb946b9-8d39-44d8-8248-247621590c26","requestID":"df4383ad112e026a92d84c01d77a509a"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1533,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1533,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.714868,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0cb946b9-8d39-44d8-8248-247621590c26","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"df4383ad112e026a92d84c01d77a509a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/0cb946b9-8d39-44d8-8248-247621590c26","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"df4383ad112e026a92d84c01d77a509a","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 52ms","method":"POST","requestID":"7823ec2b518e326879447937f8a45132","responseTime":52,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:57:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch","requestID":"7823ec2b518e326879447937f8a45132"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"95670720-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/0cb946b9-8d39-44d8-8248-247621590c26","requestID":"df4383ad112e026a92d84c01d77a509a"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1534,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} gateway-1 | {"time_local":"18/Jun/2025:09:57:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/0cb946b9-8d39-44d8-8248-247621590c26 HTTP/1.1","status": "200","body_bytes_sent":"1293","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"df4383ad112e026a92d84c01d77a509a"} experiment-1 | {"level":"info","message":"GET /experiments/0cb946b9-8d39-44d8-8248-247621590c26 200 14ms","method":"GET","requestID":"df4383ad112e026a92d84c01d77a509a","responseTime":14,"status":200,"url":"/experiments/0cb946b9-8d39-44d8-8248-247621590c26"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3ed92fe2-dd3a-4c6a-bf95-a9a679cbfc96","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.7418818} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1534,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.675636,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"95670720-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"95670720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s","level":"info","message":"auth send jwt","requestID":"16c5c5727097afec4e5a6c6385af664b"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"16c5c5727097afec4e5a6c6385af664b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"95670720-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1535,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} device-1 | {"level":"info","message":"POST /devices/9acc4cee-5561-4b0a-9906-a51e044da6b8/signaling 200 32ms","method":"POST","requestID":"95670720-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8/signaling"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/0cb946b9-8d39-44d8-8248-247621590c26","requestID":"16c5c5727097afec4e5a6c6385af664b"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1535,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.70772,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"956c3740-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0cb946b9-8d39-44d8-8248-247621590c26","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"16c5c5727097afec4e5a6c6385af664b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/0cb946b9-8d39-44d8-8248-247621590c26","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"16c5c5727097afec4e5a6c6385af664b","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1536,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bacf397c-39e5-46d2-9e0b-dbeebf457e78","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.7764113} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1536,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.580761,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"956c3740-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"956c3740-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0cb946b9-8d39-44d8-8248-247621590c26"},"level":"info","message":"Attempting to finish experiment","requestID":"16c5c5727097afec4e5a6c6385af664b"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"956d6fc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"956c3740-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/742d181a-2c58-4475-bea2-e80de93cbb65/signaling 200 9ms","method":"POST","requestID":"956c3740-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/742d181a-2c58-4475-bea2-e80de93cbb65/signaling"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1537,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1537,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.661359,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/312fe4fc-8057-47ab-bfc1-85e832e0ea78","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"956d6fc0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/312fe4fc-8057-47ab-bfc1-85e832e0ea78","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"956d6fc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"18/Jun/2025:09:57:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/bb4e6b53-6cb8-484b-9aa1-7764d4d24eef?id=00345552-d3e6-442c-9e9a-4989ccd27fd9 HTTP/1.1","status": "101","body_bytes_sent":"916","request_time":"0.195","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"64f6779426d09e5ac1a6436c4d7ade61"} gateway-1 | {"time_local":"18/Jun/2025:09:57:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /rooms/bb4e6b53-6cb8-484b-9aa1-7764d4d24eef?id=75942a5e-05a5-458a-a098-8d6b99205411 HTTP/1.1","status": "101","body_bytes_sent":"0","request_time":"0.196","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"0f1551ab92434c2fcf705c664cfb29cf"} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"00345552-d3e6-442c-9e9a-4989ccd27fd9\" in room \"http://localhost/rooms/bb4e6b53-6cb8-484b-9aa1-7764d4d24eef\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"00345552-d3e6-442c-9e9a-4989ccd27fd9\" from room \"http://localhost/rooms/bb4e6b53-6cb8-484b-9aa1-7764d4d24eef\", code: 1006, reason: "} forwarding-1 | {"level":"info","message":"Stopping forwarding-queue for participant \"75942a5e-05a5-458a-a098-8d6b99205411\" in room \"http://localhost/rooms/bb4e6b53-6cb8-484b-9aa1-7764d4d24eef\""} forwarding-1 | {"level":"info","message":"websocket connection closed for participant \"75942a5e-05a5-458a-a098-8d6b99205411\" from room \"http://localhost/rooms/bb4e6b53-6cb8-484b-9aa1-7764d4d24eef\", code: 1006, reason: "} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/312fe4fc-8057-47ab-bfc1-85e832e0ea78' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/312fe4fc-8057-47ab-bfc1-85e832e0ea78' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"312fe4fc-8057-47ab-bfc1-85e832e0ea78","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F312fe4fc-8057-47ab-bfc1-85e832e0ea78': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F312fe4fc-8057-47ab-bfc1-85e832e0ea78","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"088cbf47-5efb-4b52-8402-da7b95287c8a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.791731} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"25b59d816515f5c380cc29b91c3bd82d","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b91aed71-5a84-4a09-b577-98938e55d692","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.7918897} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"25b59d816515f5c380cc29b91c3bd82d","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"3f5911b7cc0f89aaeb47325d64686819","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/312fe4fc-8057-47ab-bfc1-85e832e0ea78"}}},"level":"info","message":"received a callback","requestID":"25b59d816515f5c380cc29b91c3bd82d"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"3f5911b7cc0f89aaeb47325d64686819","responseTime":0,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 30ms","method":"POST","requestID":"956d6fc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3","B4","B5","B6","B7","B8","C1","C2","C3","C4","C5","C6","C7","C8","D1","D2","D3","D4","D5","D6","D7","D8","E1","E2","E3","E4","E5","E6","E7","E8","F1","F2","F3","F4","F5","F6","F7","F8","G1","G2","G3","G4","G5","G6","G7","G8","H1","H2","H3","H4","H5","H6","H7","H8"]},"direction":"inout","interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["websocket"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65"}],"status":"closed","type":"websocket","url":"http://localhost/peerconnections/312fe4fc-8057-47ab-bfc1-85e832e0ea78"}}},"level":"info","message":"received a callback","requestID":"3f5911b7cc0f89aaeb47325d64686819"} device-1 | {"data":{"peerconnection":"312fe4fc-8057-47ab-bfc1-85e832e0ea78","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"956d6fc0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/312fe4fc-8057-47ab-bfc1-85e832e0ea78 204 52ms","method":"DELETE","requestID":"956d6fc0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":52,"status":204,"url":"/peerconnections/312fe4fc-8057-47ab-bfc1-85e832e0ea78"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0cb946b9-8d39-44d8-8248-247621590c26"},"level":"info","message":"Successfully finished experiment","requestID":"16c5c5727097afec4e5a6c6385af664b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"957b2b60-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1538,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9acc4cee-5561-4b0a-9906-a51e044da6b8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"861c5977-1329-4e44-b518-36153f86b8e4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.8742905} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1538,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.308932,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"957b2b60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"957b2b60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"957b2b60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/9acc4cee-5561-4b0a-9906-a51e044da6b8/signaling 200 8ms","method":"POST","requestID":"957b2b60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"957cb200-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0cb946b9-8d39-44d8-8248-247621590c26': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0cb946b9-8d39-44d8-8248-247621590c26","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"5476b664-cead-4ba4-b02a-cc2b6c2e89a9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.8811553} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4ba926f5-2b60-4aaf-9890-f39cc203330b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.8813903} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"16c5c5727097afec4e5a6c6385af664b","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1539,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F742d181a-2c58-4475-bea2-e80de93cbb65","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a9bcd74c-ec28-4338-bfec-28abe1f0d07b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240622.883943} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1539,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.033474,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"957cb200-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"957cb200-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"957cb200-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/742d181a-2c58-4475-bea2-e80de93cbb65/signaling 200 8ms","method":"POST","requestID":"957cb200-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/742d181a-2c58-4475-bea2-e80de93cbb65/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/0cb946b9-8d39-44d8-8248-247621590c26","requestID":"16c5c5727097afec4e5a6c6385af664b"} gateway-1 | {"time_local":"18/Jun/2025:09:57:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/0cb946b9-8d39-44d8-8248-247621590c26 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.235","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"16c5c5727097afec4e5a6c6385af664b"} experiment-1 | {"level":"info","message":"DELETE /experiments/0cb946b9-8d39-44d8-8248-247621590c26 204 208ms","method":"DELETE","requestID":"16c5c5727097afec4e5a6c6385af664b","responseTime":208,"status":204,"url":"/experiments/0cb946b9-8d39-44d8-8248-247621590c26"} gateway-1 | {"time_local":"18/Jun/2025:09:57:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1968","request_time":"0.774","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"92eceee1798d482437ee026c4d2bc91a"} gateway-1 | {"time_local":"18/Jun/2025:09:57:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1969","request_time":"0.785","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.12.13","requestID":"994693df597fcde73111425710bd5af4"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 162ms","method":"POST","requestID":"25b59d816515f5c380cc29b91c3bd82d","responseTime":162,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:57:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.189","http_referrer":"","http_user_agent":"node-fetch","requestID":"25b59d816515f5c380cc29b91c3bd82d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 162ms","method":"POST","requestID":"3f5911b7cc0f89aaeb47325d64686819","responseTime":162,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:57:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.190","http_referrer":"","http_user_agent":"node-fetch","requestID":"3f5911b7cc0f89aaeb47325d64686819"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s","level":"info","message":"auth send jwt","requestID":"1278a9fe021be60385f07a2cb93fef77"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/742d181a-2c58-4475-bea2-e80de93cbb65' closed"} device-1 | {"level":"info","message":"postDevices called","requestID":"1278a9fe021be60385f07a2cb93fef77"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1540,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1540,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.741264,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"1278a9fe021be60385f07a2cb93fef77","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240622,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyMn0.bg5_FlT3j3jyDsulNviptkFC1FE6pmmx8HIlOiSlU2s"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1278a9fe021be60385f07a2cb93fef77","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"1278a9fe021be60385f07a2cb93fef77","responseTime":27,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/9acc4cee-5561-4b0a-9906-a51e044da6b8' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d0bcb3cf-d01a-48a2-8ba7-d51dc729c1ea","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240623.027152} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1278a9fe021be60385f07a2cb93fef77","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"237e3b35-a855-41d1-897c-760dda684a0b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240623.0327995} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"1278a9fe021be60385f07a2cb93fef77","responseTime":28,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"cf8d8698-523c-43d1-a8b7-196f04e1a3be","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240623.0683699} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"43a775e7-a97d-4e17-89e7-88fbb68fd934","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240623.0693576} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"1278a9fe021be60385f07a2cb93fef77","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:03.068317596Z"}]},"request_id":"eccd7ac4-fefd-4622-86ed-c06f45fadd01","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240623.073688} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1278a9fe021be60385f07a2cb93fef77","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"1278a9fe021be60385f07a2cb93fef77"} gateway-1 | {"time_local":"18/Jun/2025:09:57:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.095","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1278a9fe021be60385f07a2cb93fef77"} device-1 | {"level":"info","message":"POST /devices? 201 91ms","method":"POST","requestID":"1278a9fe021be60385f07a2cb93fef77","responseTime":91,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyM30.ZLbLD_oznR4bJVU2f2t33LWtPhoT2kxGsbgMcs6AuI4","level":"info","message":"auth send jwt","requestID":"f656bff040f1396aef9de7e177f8787d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f656bff040f1396aef9de7e177f8787d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"f656bff040f1396aef9de7e177f8787d"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1541,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:03Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1541,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.023931,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:03Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f656bff040f1396aef9de7e177f8787d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240623,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyM30.ZLbLD_oznR4bJVU2f2t33LWtPhoT2kxGsbgMcs6AuI4"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"f656bff040f1396aef9de7e177f8787d","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e512bb2b-d86b-4bb4-b495-d4481cc317bc","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240623.1287296} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"f656bff040f1396aef9de7e177f8787d","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9a549d81-37ad-491b-baf0-eb16870523e0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240623.1578352} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"f656bff040f1396aef9de7e177f8787d","responseTime":28,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"8d7a1e1c-b962-471f-af33-78d2ab47cf56","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240623.1684434} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1dac0a89-c6fa-4d39-8f53-6b2fbf555595","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240623.168682} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"f656bff040f1396aef9de7e177f8787d","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:03.168401152Z"}]},"request_id":"6e8318c5-81d3-40ab-a524-6d3137eccc3e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240623.1735384} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"f656bff040f1396aef9de7e177f8787d","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"f656bff040f1396aef9de7e177f8787d"} gateway-1 | {"time_local":"18/Jun/2025:09:57:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.098","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f656bff040f1396aef9de7e177f8787d"} device-1 | {"level":"info","message":"POST /devices? 201 94ms","method":"POST","requestID":"f656bff040f1396aef9de7e177f8787d","responseTime":94,"status":201,"url":"/devices?"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"9a08a463-2a30-4270-9072-c247ccbd1bb8\" in room \"http://localhost/rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97\"","requestID":"92f6f180-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"61581f7a-afc8-46fb-a215-58ce510fbd8b\" in room \"http://localhost/rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97\"","requestID":"92f71890-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"2b09ff36-63ad-441f-91b2-7ccc2c1972c7\" in room \"http://localhost/rooms/da9cb60c-e036-4fc5-ac77-c32eaaecf316\" did not answer hearbeat check, closing connection","requestID":"90f79f10-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"d2219bc8-8d70-429b-8f44-2bbcc8be3817\" in room \"http://localhost/rooms/da9cb60c-e036-4fc5-ac77-c32eaaecf316\" did not answer hearbeat check, closing connection","requestID":"90f7ed30-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f935371193b334887eadb73e8b391e1e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f935371193b334887eadb73e8b391e1e","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:57:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/69243603-24c2-492d-baeb-c11c5a619357/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f935371193b334887eadb73e8b391e1e"} device-1 | {"level":"info","message":"OPTIONS /devices/69243603-24c2-492d-baeb-c11c5a619357/websocket 200 1ms","method":"OPTIONS","requestID":"f935371193b334887eadb73e8b391e1e","responseTime":1,"status":200,"url":"/devices/69243603-24c2-492d-baeb-c11c5a619357/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0","level":"info","message":"auth send jwt","requestID":"215d120a9b9cf1573352315528c7ca13"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"215d120a9b9cf1573352315528c7ca13","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"215d120a9b9cf1573352315528c7ca13"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1542,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1542,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.304123,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"215d120a9b9cf1573352315528c7ca13","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240625,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"215d120a9b9cf1573352315528c7ca13","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"215d120a9b9cf1573352315528c7ca13"} gateway-1 | {"time_local":"18/Jun/2025:09:57:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/69243603-24c2-492d-baeb-c11c5a619357/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.027","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"215d120a9b9cf1573352315528c7ca13"} device-1 | {"level":"info","message":"POST /devices/69243603-24c2-492d-baeb-c11c5a619357/websocket 200 20ms","method":"POST","requestID":"215d120a9b9cf1573352315528c7ca13","responseTime":20,"status":200,"url":"/devices/69243603-24c2-492d-baeb-c11c5a619357/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a6d711e179504ea9283794068eca560b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a6d711e179504ea9283794068eca560b","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:57:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a6d711e179504ea9283794068eca560b"} device-1 | {"level":"info","message":"OPTIONS /devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a/websocket 200 0ms","method":"OPTIONS","requestID":"a6d711e179504ea9283794068eca560b","responseTime":0,"status":200,"url":"/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0","level":"info","message":"auth send jwt","requestID":"47dbf8d75ce7576e8e780eb50418c1a0"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"47dbf8d75ce7576e8e780eb50418c1a0","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"47dbf8d75ce7576e8e780eb50418c1a0"} device-1 | {"level":"info","message":"device 'http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357' connected"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1543,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1543,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.214736,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"47dbf8d75ce7576e8e780eb50418c1a0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240625,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"47dbf8d75ce7576e8e780eb50418c1a0","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"47dbf8d75ce7576e8e780eb50418c1a0"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"105973628547c89424a18b8f1bfbdae5","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"105973628547c89424a18b8f1bfbdae5","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:57:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.020","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"47dbf8d75ce7576e8e780eb50418c1a0"} device-1 | {"level":"info","message":"POST /devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a/websocket 200 15ms","method":"POST","requestID":"47dbf8d75ce7576e8e780eb50418c1a0","responseTime":15,"status":200,"url":"/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:57:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/69243603-24c2-492d-baeb-c11c5a619357? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"105973628547c89424a18b8f1bfbdae5"} device-1 | {"level":"info","message":"OPTIONS /devices/69243603-24c2-492d-baeb-c11c5a619357? 200 1ms","method":"OPTIONS","requestID":"105973628547c89424a18b8f1bfbdae5","responseTime":1,"status":200,"url":"/devices/69243603-24c2-492d-baeb-c11c5a619357?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0","level":"info","message":"auth send jwt","requestID":"620ceec81ec7f79dca88d80784fad087"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"620ceec81ec7f79dca88d80784fad087","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"620ceec81ec7f79dca88d80784fad087"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1544,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1544,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.590278,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"620ceec81ec7f79dca88d80784fad087","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240625,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"620ceec81ec7f79dca88d80784fad087","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:03.068317596Z"}]},"request_id":"387ff01c-0b12-427e-80cb-ff5f1f291788","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.5496914} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"620ceec81ec7f79dca88d80784fad087","responseTime":6,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"device 'http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a' connected"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ddbcf843-aca8-4eb5-8435-4fb70088f70f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.5620022} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"620ceec81ec7f79dca88d80784fad087","responseTime":4,"status":200,"url":"/relations/update"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"a9c9aca9-52da-489f-ad3b-3d60488fb619\" in room \"http://localhost/rooms/4c28e906-04e2-4443-9b4c-9d6af8487efa\"","requestID":"941b4d40-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"4e1e8ffe-04b4-4423-b49b-697bbcd2d132\" in room \"http://localhost/rooms/4c28e906-04e2-4443-9b4c-9d6af8487efa\"","requestID":"941b9b60-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"4b070df80cf9ee452d534d9cf3bcbe5e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"4b070df80cf9ee452d534d9cf3bcbe5e","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:03.068317596Z"}]},"request_id":"e9c10167-9a67-46ac-9ab6-6d5249309b3e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.5717895} gateway-1 | {"time_local":"18/Jun/2025:09:57:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4b070df80cf9ee452d534d9cf3bcbe5e"} device-1 | {"level":"info","message":"OPTIONS /devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a? 200 0ms","method":"OPTIONS","requestID":"4b070df80cf9ee452d534d9cf3bcbe5e","responseTime":0,"status":200,"url":"/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"620ceec81ec7f79dca88d80784fad087","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"620ceec81ec7f79dca88d80784fad087"} device-1 | {"level":"info","message":"PATCH /devices/69243603-24c2-492d-baeb-c11c5a619357? 200 40ms","method":"PATCH","requestID":"620ceec81ec7f79dca88d80784fad087","responseTime":40,"status":200,"url":"/devices/69243603-24c2-492d-baeb-c11c5a619357?"} gateway-1 | {"time_local":"18/Jun/2025:09:57:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/69243603-24c2-492d-baeb-c11c5a619357? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.045","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"620ceec81ec7f79dca88d80784fad087"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0","level":"info","message":"auth send jwt","requestID":"10d10747744a6069443abcca143e4c89"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"10d10747744a6069443abcca143e4c89","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"10d10747744a6069443abcca143e4c89"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1545,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1545,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.663184,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"10d10747744a6069443abcca143e4c89","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240625,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"10d10747744a6069443abcca143e4c89","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:03.168401152Z"}]},"request_id":"027b5def-a922-401b-8286-933816b0666d","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.6097283} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"10d10747744a6069443abcca143e4c89","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"34f84a70-3671-4668-8b63-9fe34e47a1ab","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.613295} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"10d10747744a6069443abcca143e4c89","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:03.168401152Z"}]},"request_id":"51809198-3864-4c02-910e-ac6f99e5b84e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.6493406} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"10d10747744a6069443abcca143e4c89","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"10d10747744a6069443abcca143e4c89"} gateway-1 | {"time_local":"18/Jun/2025:09:57:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.076","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"10d10747744a6069443abcca143e4c89"} device-1 | {"level":"info","message":"PATCH /devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a? 200 49ms","method":"PATCH","requestID":"10d10747744a6069443abcca143e4c89","responseTime":49,"status":200,"url":"/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0","level":"info","message":"auth send jwt","requestID":"d7cd7d56d13db2fe900ae08f35a8dded"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d7cd7d56d13db2fe900ae08f35a8dded","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d7cd7d56d13db2fe900ae08f35a8dded"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1546,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1546,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.731318,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d7cd7d56d13db2fe900ae08f35a8dded","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240625,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d7cd7d56d13db2fe900ae08f35a8dded","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:03.068317596Z"}]},"request_id":"4da804cb-9687-43eb-91ca-c9d39c91c8cd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.6644285} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d7cd7d56d13db2fe900ae08f35a8dded","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d7cd7d56d13db2fe900ae08f35a8dded"} device-1 | {"level":"info","message":"GET /devices/69243603-24c2-492d-baeb-c11c5a619357? 200 9ms","method":"GET","requestID":"d7cd7d56d13db2fe900ae08f35a8dded","responseTime":9,"status":200,"url":"/devices/69243603-24c2-492d-baeb-c11c5a619357?"} gateway-1 | {"time_local":"18/Jun/2025:09:57:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/69243603-24c2-492d-baeb-c11c5a619357? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d7cd7d56d13db2fe900ae08f35a8dded"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0","level":"info","message":"auth send jwt","requestID":"716dc42eae1dc482fb0cfce0e48be25f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"716dc42eae1dc482fb0cfce0e48be25f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"716dc42eae1dc482fb0cfce0e48be25f"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1547,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1547,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.789606,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"716dc42eae1dc482fb0cfce0e48be25f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240625,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"716dc42eae1dc482fb0cfce0e48be25f","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:03.168401152Z"}]},"request_id":"3de02770-68d1-4cbc-a3a8-cd2356c974b9","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.7013676} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"716dc42eae1dc482fb0cfce0e48be25f","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"716dc42eae1dc482fb0cfce0e48be25f"} device-1 | {"level":"info","message":"GET /devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a? 200 33ms","method":"GET","requestID":"716dc42eae1dc482fb0cfce0e48be25f","responseTime":33,"status":200,"url":"/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a?"} gateway-1 | {"time_local":"18/Jun/2025:09:57:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"716dc42eae1dc482fb0cfce0e48be25f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0","level":"info","message":"auth send jwt","requestID":"d92d6112590dce59726fcbddd9d8c3b4"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d92d6112590dce59726fcbddd9d8c3b4","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"d92d6112590dce59726fcbddd9d8c3b4"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1548,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1548,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.769583,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d92d6112590dce59726fcbddd9d8c3b4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240625,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"d92d6112590dce59726fcbddd9d8c3b4","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6df881f5-5146-4d51-8353-96acbd6c898f"},"level":"info","message":"Attempting to run experiment","requestID":"d92d6112590dce59726fcbddd9d8c3b4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6df881f5-5146-4d51-8353-96acbd6c898f"},"level":"info","message":"Attempting to book experiment","requestID":"d92d6112590dce59726fcbddd9d8c3b4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6df881f5-5146-4d51-8353-96acbd6c898f"},"level":"info","message":"Successfully booked experiment","requestID":"d92d6112590dce59726fcbddd9d8c3b4"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"97333ba0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"973362b0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1549,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1549,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.627688,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1550,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"97333ba0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240625,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"97333ba0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1550,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.669829,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"973362b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240625,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"973362b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:03.068317596Z"}]},"request_id":"8b8cf1e6-ee3f-4e59-a074-9c5301239914","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.7612884} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"97333ba0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:03.168401152Z"}]},"request_id":"f9614fe2-c29b-4ff0-91a3-5c4c5862e10a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.7620018} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"973362b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"97333ba0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/69243603-24c2-492d-baeb-c11c5a619357? 200 10ms","method":"GET","requestID":"97333ba0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/69243603-24c2-492d-baeb-c11c5a619357?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"973362b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a? 200 10ms","method":"GET","requestID":"973362b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6df881f5-5146-4d51-8353-96acbd6c898f"},"level":"info","message":"Setting up experiment","requestID":"d92d6112590dce59726fcbddd9d8c3b4"} experiment-1 | {"level":"info","message":"uninstantiated devices","requestID":"d92d6112590dce59726fcbddd9d8c3b4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6df881f5-5146-4d51-8353-96acbd6c898f"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"d92d6112590dce59726fcbddd9d8c3b4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6df881f5-5146-4d51-8353-96acbd6c898f"},"level":"info","message":"Successfully locked booking for experiment","requestID":"d92d6112590dce59726fcbddd9d8c3b4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6df881f5-5146-4d51-8353-96acbd6c898f"},"level":"info","message":"Successfully set up experiment","requestID":"d92d6112590dce59726fcbddd9d8c3b4"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"9741ba90-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"9741e1a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1551,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1551,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.835429,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1552,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6df881f5-5146-4d51-8353-96acbd6c898f"},"level":"info","message":"Successfully running experiment","requestID":"d92d6112590dce59726fcbddd9d8c3b4"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9741ba90-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240625,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"9741ba90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1552,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.853636,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9741e1a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240625,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"9741e1a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:03.068317596Z"}]},"request_id":"3d0a0818-9e5c-466d-b35f-d85ab50baf2a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.8588786} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"9741ba90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:03.168401152Z"}]},"request_id":"00c9204e-64e6-4dde-8923-ece9b7645892","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.859714} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"9741e1a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"9741ba90-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/69243603-24c2-492d-baeb-c11c5a619357? 200 14ms","method":"GET","requestID":"9741ba90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/69243603-24c2-492d-baeb-c11c5a619357?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"9741e1a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a? 200 14ms","method":"GET","requestID":"9741e1a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"974452a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6df881f5-5146-4d51-8353-96acbd6c898f#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6df881f5-5146-4d51-8353-96acbd6c898f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"2ac9d8f1-39dc-4c97-b7e4-011c785d03cb","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.8688347} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b7731ca1-5478-40af-8ed4-b1417fa28037","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.868888} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1553,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"d92d6112590dce59726fcbddd9d8c3b4","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5409e8bd-2e14-4254-8e37-bcb7d9fe086b","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.8709939} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1553,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.026663,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"974452a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"974452a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"974452a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/69243603-24c2-492d-baeb-c11c5a619357/signaling 200 8ms","method":"POST","requestID":"974452a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/69243603-24c2-492d-baeb-c11c5a619357/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/6df881f5-5146-4d51-8353-96acbd6c898f","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"d92d6112590dce59726fcbddd9d8c3b4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"97460050-4c2a-11f0-a085-a5c7b3a0c4e5"} gateway-1 | {"time_local":"18/Jun/2025:09:57:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"808","request_time":"0.173","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d92d6112590dce59726fcbddd9d8c3b4"} experiment-1 | {"level":"info","message":"POST /experiments? 201 169ms","method":"POST","requestID":"d92d6112590dce59726fcbddd9d8c3b4","responseTime":169,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1554,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0","level":"info","message":"auth send jwt","requestID":"986272c68b2f8823fbf212664b3200ad"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"813d460e-6f58-43f2-9c3d-884e8e49ee37","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.8813639} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"986272c68b2f8823fbf212664b3200ad","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1554,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.515413,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"986272c68b2f8823fbf212664b3200ad"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"97460050-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"97460050-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1555,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"97460050-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a/signaling 200 9ms","method":"POST","requestID":"97460050-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a/signaling"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1555,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.352112,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6df881f5-5146-4d51-8353-96acbd6c898f"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"d92d6112590dce59726fcbddd9d8c3b4"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"986272c68b2f8823fbf212664b3200ad","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240625,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"986272c68b2f8823fbf212664b3200ad","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"9747d510-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"9747fc20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:03.068317596Z"}]},"request_id":"96fd1c8b-a23e-4974-a4f7-1927593847ce","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.8906794} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"986272c68b2f8823fbf212664b3200ad","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1556,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1556,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.649554,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1557,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1557,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.56199,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9747d510-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240625,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"9747d510-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9747fc20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240625,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"9747fc20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"986272c68b2f8823fbf212664b3200ad"} gateway-1 | {"time_local":"18/Jun/2025:09:57:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/69243603-24c2-492d-baeb-c11c5a619357? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"986272c68b2f8823fbf212664b3200ad"} device-1 | {"level":"info","message":"GET /devices/69243603-24c2-492d-baeb-c11c5a619357? 200 13ms","method":"GET","requestID":"986272c68b2f8823fbf212664b3200ad","responseTime":13,"status":200,"url":"/devices/69243603-24c2-492d-baeb-c11c5a619357?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:03.068317596Z"}]},"request_id":"5386ff5e-15ff-4aac-94b5-d96252deb1f2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.896254} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0","level":"info","message":"auth send jwt","requestID":"2b183d9e04ef5e5489e699bbe98ff34b"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"9747d510-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:03.168401152Z"}]},"request_id":"46e254b9-03ca-4a6e-9797-9c1265b698ae","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.8983164} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2b183d9e04ef5e5489e699bbe98ff34b","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"9747fc20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2b183d9e04ef5e5489e699bbe98ff34b"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"9747d510-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/69243603-24c2-492d-baeb-c11c5a619357? 200 13ms","method":"GET","requestID":"9747d510-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/69243603-24c2-492d-baeb-c11c5a619357?"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1558,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"9747fc20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a? 200 13ms","method":"GET","requestID":"9747fc20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a?"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1558,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.955499,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6df881f5-5146-4d51-8353-96acbd6c898f"},"level":"info","message":"Building connection plan","requestID":"d92d6112590dce59726fcbddd9d8c3b4"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"61348ea5-073b-4672-89ac-48642d2855c9"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"681d499e-9435-4b6d-8db9-dbd83f45686c"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"cb354d2b-9803-45ef-a329-d95414d8bb48"}]},"level":"info","message":"Built pairwise service configurations","requestID":"d92d6112590dce59726fcbddd9d8c3b4"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"d92d6112590dce59726fcbddd9d8c3b4"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"2b183d9e04ef5e5489e699bbe98ff34b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240625,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2b183d9e04ef5e5489e699bbe98ff34b","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"974a6d20-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:03.168401152Z"}]},"request_id":"93b1c885-71e4-49f2-a8eb-be38fcf664c6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.9083774} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2b183d9e04ef5e5489e699bbe98ff34b","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1559,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1559,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.670142,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"974a6d20-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240625,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNX0.PRk4K061lhynHCYjTAAFy5q1YkkQ0MYOFen3xvQTIo0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"974a6d20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2b183d9e04ef5e5489e699bbe98ff34b"} gateway-1 | {"time_local":"18/Jun/2025:09:57:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2b183d9e04ef5e5489e699bbe98ff34b"} device-1 | {"level":"info","message":"GET /devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a? 200 12ms","method":"GET","requestID":"2b183d9e04ef5e5489e699bbe98ff34b","responseTime":12,"status":200,"url":"/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"9923d074-cff6-41ab-a38a-66d8d88b25c6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.9173937} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a115b037-aa14-45bb-91d0-039ecb2d9105","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.9175565} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"974a6d20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"974a6d20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"974a6d20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2'","requestID":"974a6d20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2'","requestID":"974a6d20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"974a6d20-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 21ms","method":"POST","requestID":"974a6d20-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":21,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"974a6d20-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6df881f5-5146-4d51-8353-96acbd6c898f"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"d92d6112590dce59726fcbddd9d8c3b4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"97519910-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1560,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"31bd32cf-29ff-4d92-8cc4-d5eb2a554a84","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.9567137} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1560,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.354448,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"97519910-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"97519910-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"97519910-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/69243603-24c2-492d-baeb-c11c5a619357/signaling 200 7ms","method":"POST","requestID":"97519910-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/devices/69243603-24c2-492d-baeb-c11c5a619357/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"97531fb0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1561,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:05Z"} device-1 | {"device":"69243603-24c2-492d-baeb-c11c5a619357","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2fb095fa-33c3-40d7-8593-c998f48860e7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240625.9915535} device-1 | {"content":{"canTrickle":true},"device":"69243603-24c2-492d-baeb-c11c5a619357","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1561,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.457533,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"97531fb0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"97531fb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"97531fb0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a/signaling 200 33ms","method":"POST","requestID":"97531fb0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a/signaling"} device-1 | {"device":"27ab7962-ab7f-4a8a-83ec-3fbcde77519a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"27ab7962-ab7f-4a8a-83ec-3fbcde77519a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"content":{"sdp":"v=0\r\no=- 1813359217834052554 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:UTxK\r\na=ice-pwd:s6zADFoPLD7pYsYKVL5F0MTR\r\na=ice-options:trickle\r\na=fingerprint:sha-256 6A:13:22:9C:E9:0B:38:44:E0:1E:68:C0:65:9E:36:58:0D:43:4F:82:67:E8:B6:36:D6:DE:54:1A:5A:5F:36:93\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"69243603-24c2-492d-baeb-c11c5a619357","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"content":{"sdp":"v=0\r\no=- 6513362668844134939 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:Zn5+\r\na=ice-pwd:AyaKYylOOWtbqB67WrddL8jr\r\na=ice-options:trickle\r\na=fingerprint:sha-256 90:FC:0C:C0:CE:22:D1:A4:00:6B:40:20:EA:49:2E:8B:65:4B:BD:A7:7F:34:7B:B8:7E:E5:90:BF:37:29:B8:6D\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"27ab7962-ab7f-4a8a-83ec-3fbcde77519a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:1201879904 1 udp 2113937151 3256fc2d-a301-4de1-bc28-3e735b7a5185.local 44057 typ host generation 0 ufrag Zn5+ network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"27ab7962-ab7f-4a8a-83ec-3fbcde77519a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:3565722227 1 udp 1677729535 141.24.211.56 44057 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag Zn5+ network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"27ab7962-ab7f-4a8a-83ec-3fbcde77519a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:1194892082 1 udp 2113937151 5f6b15de-eb2f-4918-8b7e-3b5e66fe6ae3.local 58767 typ host generation 0 ufrag UTxK network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"69243603-24c2-492d-baeb-c11c5a619357","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:3558029857 1 udp 1677729535 141.24.211.56 58767 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag UTxK network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"69243603-24c2-492d-baeb-c11c5a619357","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357'"} device-1 | {"device":"69243603-24c2-492d-baeb-c11c5a619357","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"27ab7962-ab7f-4a8a-83ec-3fbcde77519a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7e0c7d79-3e29-4c2c-a0aa-f113781d26d2","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"69243603-24c2-492d-baeb-c11c5a619357","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"27ab7962-ab7f-4a8a-83ec-3fbcde77519a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"1d74e298def1134083c1cbf2e0c5e8d1","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1d74e298def1134083c1cbf2e0c5e8d1","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2"}}},"level":"info","message":"received a callback","requestID":"1d74e298def1134083c1cbf2e0c5e8d1"} device-1 | {"device":"69243603-24c2-492d-baeb-c11c5a619357","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"27ab7962-ab7f-4a8a-83ec-3fbcde77519a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"1d74e298def1134083c1cbf2e0c5e8d1","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:57:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"1d74e298def1134083c1cbf2e0c5e8d1"} device-1 | {"device":"27ab7962-ab7f-4a8a-83ec-3fbcde77519a","deviceName":"JS Device 2","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"7e0c7d79-3e29-4c2c-a0aa-f113781d26d2","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"7e0c7d79-3e29-4c2c-a0aa-f113781d26d2","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7e0c7d79-3e29-4c2c-a0aa-f113781d26d2","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"20c9ba03358db54c10172f4c760c4da1","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"20c9ba03358db54c10172f4c760c4da1","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2"}}},"level":"info","message":"received a callback","requestID":"20c9ba03358db54c10172f4c760c4da1"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"976e96f0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1562,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:06Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7e0c7d79-3e29-4c2c-a0aa-f113781d26d2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"91b21d3c-4cd1-49b0-8cf6-48b08dfb705c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240626.147185} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1562,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.237499,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"976e96f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"976e96f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"976e96f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2 200 7ms","method":"GET","requestID":"976e96f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 50ms","method":"POST","requestID":"20c9ba03358db54c10172f4c760c4da1","responseTime":50,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:57:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch","requestID":"20c9ba03358db54c10172f4c760c4da1"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"97759bd0-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNn0.Sw58iBoHVylTcXOMddfA6VkdqS63OxIDekcxrrcQivg","level":"info","message":"auth send jwt","requestID":"9b04876f75c4ebc67a9d3b5e8ebc5182"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9b04876f75c4ebc67a9d3b5e8ebc5182","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/6df881f5-5146-4d51-8353-96acbd6c898f","requestID":"9b04876f75c4ebc67a9d3b5e8ebc5182"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1563,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:06Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1564,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:06Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a141f05c-6c07-4bb8-a82c-bc327d0d94e7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240626.1941795} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1564,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.656132,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6df881f5-5146-4d51-8353-96acbd6c898f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9b04876f75c4ebc67a9d3b5e8ebc5182","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/6df881f5-5146-4d51-8353-96acbd6c898f","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240626,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNn0.Sw58iBoHVylTcXOMddfA6VkdqS63OxIDekcxrrcQivg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"9b04876f75c4ebc67a9d3b5e8ebc5182","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1563,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.054434,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"97759bd0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"97759bd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"97759bd0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a/signaling 200 9ms","method":"POST","requestID":"97759bd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":9,"status":200,"url":"/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a/signaling"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/6df881f5-5146-4d51-8353-96acbd6c898f","requestID":"9b04876f75c4ebc67a9d3b5e8ebc5182"} gateway-1 | {"time_local":"18/Jun/2025:09:57:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/6df881f5-5146-4d51-8353-96acbd6c898f HTTP/1.1","status": "200","body_bytes_sent":"881","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9b04876f75c4ebc67a9d3b5e8ebc5182"} experiment-1 | {"level":"info","message":"GET /experiments/6df881f5-5146-4d51-8353-96acbd6c898f 200 8ms","method":"GET","requestID":"9b04876f75c4ebc67a9d3b5e8ebc5182","responseTime":8,"status":200,"url":"/experiments/6df881f5-5146-4d51-8353-96acbd6c898f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"977b4120-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNn0.Sw58iBoHVylTcXOMddfA6VkdqS63OxIDekcxrrcQivg","level":"info","message":"auth send jwt","requestID":"b93b8a438238e38f13b500860c3ac8bb"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b93b8a438238e38f13b500860c3ac8bb","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/6df881f5-5146-4d51-8353-96acbd6c898f","requestID":"b93b8a438238e38f13b500860c3ac8bb"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1565,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:06Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1566,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:06Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2e1413e5-ce66-4968-af23-bf0ce867f9a6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240626.2307134} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1565,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.578765,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:06Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1566,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.796584,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"977b4120-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"977b4120-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6df881f5-5146-4d51-8353-96acbd6c898f","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"b93b8a438238e38f13b500860c3ac8bb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/6df881f5-5146-4d51-8353-96acbd6c898f","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240626,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNn0.Sw58iBoHVylTcXOMddfA6VkdqS63OxIDekcxrrcQivg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"b93b8a438238e38f13b500860c3ac8bb","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"977b4120-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/69243603-24c2-492d-baeb-c11c5a619357/signaling 200 8ms","method":"POST","requestID":"977b4120-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/69243603-24c2-492d-baeb-c11c5a619357/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6df881f5-5146-4d51-8353-96acbd6c898f"},"level":"info","message":"Attempting to finish experiment","requestID":"b93b8a438238e38f13b500860c3ac8bb"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"977d8b10-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1567,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:06Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1567,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.698894,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:06Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"977d8b10-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240626,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNn0.Sw58iBoHVylTcXOMddfA6VkdqS63OxIDekcxrrcQivg"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"977d8b10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2","device":"69243603-24c2-492d-baeb-c11c5a619357","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2","device":"27ab7962-ab7f-4a8a-83ec-3fbcde77519a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7e0c7d79-3e29-4c2c-a0aa-f113781d26d2","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7e0c7d79-3e29-4c2c-a0aa-f113781d26d2': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7e0c7d79-3e29-4c2c-a0aa-f113781d26d2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"fa3b4988-4a4b-43e6-8626-89873530674a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240626.2786086} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"46754663-cef5-4ffc-bb2f-186b759e7cbd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240626.27894} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"977d8b10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"738d5c8da292cc720febb0887b383b1e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"738d5c8da292cc720febb0887b383b1e","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"38973167b14a77e583fde0841f455dac","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"38973167b14a77e583fde0841f455dac","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2"}}},"level":"info","message":"received a callback","requestID":"738d5c8da292cc720febb0887b383b1e"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2"}}},"level":"info","message":"received a callback","requestID":"38973167b14a77e583fde0841f455dac"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"977d8b10-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2 204 80ms","method":"DELETE","requestID":"977d8b10-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":80,"status":204,"url":"/peerconnections/7e0c7d79-3e29-4c2c-a0aa-f113781d26d2"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6df881f5-5146-4d51-8353-96acbd6c898f"},"level":"info","message":"Successfully finished experiment","requestID":"b93b8a438238e38f13b500860c3ac8bb"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"978be2f0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1568,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:06Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27ab7962-ab7f-4a8a-83ec-3fbcde77519a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8fdcbd7c-3486-491c-ad34-30076de93315","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240626.3392196} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1568,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.408261,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"978be2f0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"978be2f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"978be2f0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a/signaling 200 7ms","method":"POST","requestID":"978be2f0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"978d6990-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1569,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:06Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69243603-24c2-492d-baeb-c11c5a619357","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"939cd7c4-494b-4583-82b7-968feceaf7b6","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240626.348453} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6df881f5-5146-4d51-8353-96acbd6c898f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6df881f5-5146-4d51-8353-96acbd6c898f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"7937b8ba-2253-4a29-b205-ecb829afe3d5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240626.3704958} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4dd8b761-06d5-499c-8d6a-15945c31fed5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240626.370809} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"b93b8a438238e38f13b500860c3ac8bb","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1569,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.387077,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"978d6990-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"978d6990-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"978d6990-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/69243603-24c2-492d-baeb-c11c5a619357/signaling 200 31ms","method":"POST","requestID":"978d6990-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":31,"status":200,"url":"/devices/69243603-24c2-492d-baeb-c11c5a619357/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/6df881f5-5146-4d51-8353-96acbd6c898f","requestID":"b93b8a438238e38f13b500860c3ac8bb"} gateway-1 | {"time_local":"18/Jun/2025:09:57:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/6df881f5-5146-4d51-8353-96acbd6c898f HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.251","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b93b8a438238e38f13b500860c3ac8bb"} experiment-1 | {"level":"info","message":"DELETE /experiments/6df881f5-5146-4d51-8353-96acbd6c898f 204 247ms","method":"DELETE","requestID":"b93b8a438238e38f13b500860c3ac8bb","responseTime":247,"status":204,"url":"/experiments/6df881f5-5146-4d51-8353-96acbd6c898f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 195ms","method":"POST","requestID":"738d5c8da292cc720febb0887b383b1e","responseTime":195,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:57:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.198","http_referrer":"","http_user_agent":"node-fetch","requestID":"738d5c8da292cc720febb0887b383b1e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 195ms","method":"POST","requestID":"38973167b14a77e583fde0841f455dac","responseTime":195,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:57:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.199","http_referrer":"","http_user_agent":"node-fetch","requestID":"38973167b14a77e583fde0841f455dac"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNn0.Sw58iBoHVylTcXOMddfA6VkdqS63OxIDekcxrrcQivg","level":"info","message":"auth send jwt","requestID":"af44b9e9b9aa20cb654c1c18e17c32dd"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"af44b9e9b9aa20cb654c1c18e17c32dd","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"af44b9e9b9aa20cb654c1c18e17c32dd"} gateway-1 | {"time_local":"18/Jun/2025:09:57:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3006","request_time":"0.987","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8e97925a25fe337b5d49e53899ac40c4"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1570,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:06Z"} gateway-1 | {"time_local":"18/Jun/2025:09:57:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3006","request_time":"0.953","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1ccb89d4cb38a5ccf92c6174ae01b092"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1570,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.920014,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"af44b9e9b9aa20cb654c1c18e17c32dd","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240626,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNn0.Sw58iBoHVylTcXOMddfA6VkdqS63OxIDekcxrrcQivg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"af44b9e9b9aa20cb654c1c18e17c32dd","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/27ab7962-ab7f-4a8a-83ec-3fbcde77519a' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/69243603-24c2-492d-baeb-c11c5a619357' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff8a100e4-70d4-4bf3-bcff-73ce9f70f508","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"b8d68c0a-6089-4951-92dd-ae3365ebd39f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240626.5212078} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"af44b9e9b9aa20cb654c1c18e17c32dd","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f639e388-9b61-4310-8fd0-16b2aa742530","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240626.524313} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"af44b9e9b9aa20cb654c1c18e17c32dd","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff8a100e4-70d4-4bf3-bcff-73ce9f70f508","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"ba69e9a3-d685-40de-9ffb-a3e9f818b5d0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240626.533087} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9aa81fcd-6f07-4824-a5fd-3076336c5e09","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240626.5331578} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"af44b9e9b9aa20cb654c1c18e17c32dd","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff8a100e4-70d4-4bf3-bcff-73ce9f70f508","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff8a100e4-70d4-4bf3-bcff-73ce9f70f508","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:06.532764151Z"}]},"request_id":"e6ab02c1-2ef4-429a-8f37-9cb84222bd32","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240626.536712} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"af44b9e9b9aa20cb654c1c18e17c32dd","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"af44b9e9b9aa20cb654c1c18e17c32dd"} device-1 | {"level":"info","message":"POST /devices? 201 58ms","method":"POST","requestID":"af44b9e9b9aa20cb654c1c18e17c32dd","responseTime":58,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"18/Jun/2025:09:57:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"434","request_time":"0.061","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"af44b9e9b9aa20cb654c1c18e17c32dd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNn0.Sw58iBoHVylTcXOMddfA6VkdqS63OxIDekcxrrcQivg","level":"info","message":"auth send jwt","requestID":"83877b2ff517909384c9bded0a38ced8"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"83877b2ff517909384c9bded0a38ced8","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"83877b2ff517909384c9bded0a38ced8"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1571,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:06Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1571,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.637483,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"83877b2ff517909384c9bded0a38ced8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240626,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyNn0.Sw58iBoHVylTcXOMddfA6VkdqS63OxIDekcxrrcQivg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"83877b2ff517909384c9bded0a38ced8","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"b7badb56-f9b2-43d4-b4f0-1d398408d704","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240626.5565789} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"83877b2ff517909384c9bded0a38ced8","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"68122cd5-f5fb-4584-812b-3835ffec2740","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240626.5599704} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"83877b2ff517909384c9bded0a38ced8","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"8c8f0b21-8c57-45f4-b43d-5f1b10e0c271","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240626.5733938} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7fc5fa96-a90c-4bde-abcc-4742d6e44ac3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240626.5734696} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"83877b2ff517909384c9bded0a38ced8","responseTime":15,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:06.573362111Z"}]},"request_id":"71f69b2c-2f62-45f9-8c9a-593be205f125","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240626.5764732} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"83877b2ff517909384c9bded0a38ced8","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"83877b2ff517909384c9bded0a38ced8"} gateway-1 | {"time_local":"18/Jun/2025:09:57:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"437","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"83877b2ff517909384c9bded0a38ced8"} device-1 | {"level":"info","message":"POST /devices? 201 35ms","method":"POST","requestID":"83877b2ff517909384c9bded0a38ced8","responseTime":35,"status":201,"url":"/devices?"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"75942a5e-05a5-458a-a098-8d6b99205411\" in room \"http://localhost/rooms/bb4e6b53-6cb8-484b-9aa1-7764d4d24eef\"","requestID":"95510e20-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"sending hearbeat to participant \"00345552-d3e6-442c-9e9a-4989ccd27fd9\" in room \"http://localhost/rooms/bb4e6b53-6cb8-484b-9aa1-7764d4d24eef\"","requestID":"95513530-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"9a08a463-2a30-4270-9072-c247ccbd1bb8\" in room \"http://localhost/rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97\" did not answer hearbeat check, closing connection","requestID":"92f6f180-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"61581f7a-afc8-46fb-a215-58ce510fbd8b\" in room \"http://localhost/rooms/5a2dc10f-5e5a-4012-882a-069f8160ec97\" did not answer hearbeat check, closing connection","requestID":"92f71890-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f9f8f5927041719941cf0b22534d4542","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f9f8f5927041719941cf0b22534d4542","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:57:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f9f8f5927041719941cf0b22534d4542"} device-1 | {"level":"info","message":"OPTIONS /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd/websocket 200 1ms","method":"OPTIONS","requestID":"f9f8f5927041719941cf0b22534d4542","responseTime":1,"status":200,"url":"/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyOH0.elaKvQbpeFJOUW2H3Lho4-MPfgCgq1iyM_zUBwn7XLY","level":"info","message":"auth send jwt","requestID":"dbd36f522d6c51fea46c61de2e3aa6e5"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"dbd36f522d6c51fea46c61de2e3aa6e5","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"dbd36f522d6c51fea46c61de2e3aa6e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1572,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:08Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1572,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.432714,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:08Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"dbd36f522d6c51fea46c61de2e3aa6e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240628,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyOH0.elaKvQbpeFJOUW2H3Lho4-MPfgCgq1iyM_zUBwn7XLY"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"dbd36f522d6c51fea46c61de2e3aa6e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"dbd36f522d6c51fea46c61de2e3aa6e5"} device-1 | {"level":"info","message":"POST /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd/websocket 200 18ms","method":"POST","requestID":"dbd36f522d6c51fea46c61de2e3aa6e5","responseTime":18,"status":200,"url":"/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:57:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.024","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"dbd36f522d6c51fea46c61de2e3aa6e5"} device-1 | {"level":"info","message":"device 'http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b5adf4242d653884a0568097bbcd838d","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b5adf4242d653884a0568097bbcd838d","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:57:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b5adf4242d653884a0568097bbcd838d"} device-1 | {"level":"info","message":"OPTIONS /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd? 200 1ms","method":"OPTIONS","requestID":"b5adf4242d653884a0568097bbcd838d","responseTime":1,"status":200,"url":"/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyOH0.elaKvQbpeFJOUW2H3Lho4-MPfgCgq1iyM_zUBwn7XLY","level":"info","message":"auth send jwt","requestID":"d8023e35d0eaea327205548cd2b79bd7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d8023e35d0eaea327205548cd2b79bd7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"d8023e35d0eaea327205548cd2b79bd7"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1573,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:08Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1573,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.743645,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:08Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"d8023e35d0eaea327205548cd2b79bd7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240628,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyOH0.elaKvQbpeFJOUW2H3Lho4-MPfgCgq1iyM_zUBwn7XLY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d8023e35d0eaea327205548cd2b79bd7","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:06.573362111Z"}]},"request_id":"68ff469d-6361-40e3-b350-81970bbe2703","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240628.937613} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d8023e35d0eaea327205548cd2b79bd7","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ae1cb083-46c6-4258-a4d0-9648f7d7be16","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240628.9419208} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"d8023e35d0eaea327205548cd2b79bd7","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:06.573362111Z"}]},"request_id":"35235831-ce42-4306-897a-c02f94b145b3","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240628.951619} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d8023e35d0eaea327205548cd2b79bd7","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"d8023e35d0eaea327205548cd2b79bd7"} gateway-1 | {"time_local":"18/Jun/2025:09:57:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.029","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d8023e35d0eaea327205548cd2b79bd7"} device-1 | {"level":"info","message":"PATCH /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd? 200 25ms","method":"PATCH","requestID":"d8023e35d0eaea327205548cd2b79bd7","responseTime":25,"status":200,"url":"/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyOH0.elaKvQbpeFJOUW2H3Lho4-MPfgCgq1iyM_zUBwn7XLY","level":"info","message":"auth send jwt","requestID":"cbfe10cde8f1b591f47d86f7bbb324ad"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"cbfe10cde8f1b591f47d86f7bbb324ad","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"cbfe10cde8f1b591f47d86f7bbb324ad"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1574,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:08Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1574,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.653535,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"cbfe10cde8f1b591f47d86f7bbb324ad","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240628,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyOH0.elaKvQbpeFJOUW2H3Lho4-MPfgCgq1iyM_zUBwn7XLY"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"cbfe10cde8f1b591f47d86f7bbb324ad","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:06.573362111Z"}]},"request_id":"915aebf3-c1bb-464a-af8c-eca1c7161e33","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240628.979567} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"cbfe10cde8f1b591f47d86f7bbb324ad","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"cbfe10cde8f1b591f47d86f7bbb324ad"} device-1 | {"level":"info","message":"GET /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd? 200 16ms","method":"GET","requestID":"cbfe10cde8f1b591f47d86f7bbb324ad","responseTime":16,"status":200,"url":"/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd?"} gateway-1 | {"time_local":"18/Jun/2025:09:57:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cbfe10cde8f1b591f47d86f7bbb324ad"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyOX0.t5h_AghQQbiSm-soeWrCBt8op7ZHXQ19HEOZV7la6bQ","level":"info","message":"auth send jwt","requestID":"e60cee93567a3d562695f57c0315642d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e60cee93567a3d562695f57c0315642d","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"e60cee93567a3d562695f57c0315642d"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1575,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:09Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1575,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.973247,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"e60cee93567a3d562695f57c0315642d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240629,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyOX0.t5h_AghQQbiSm-soeWrCBt8op7ZHXQ19HEOZV7la6bQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e60cee93567a3d562695f57c0315642d","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae"},"level":"info","message":"Attempting to run experiment","requestID":"e60cee93567a3d562695f57c0315642d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae"},"level":"info","message":"Attempting to book experiment","requestID":"e60cee93567a3d562695f57c0315642d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae"},"level":"info","message":"Successfully booked experiment","requestID":"e60cee93567a3d562695f57c0315642d"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"992d0fd0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"992d36e0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1576,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:09Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1576,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.754561,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:09Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1577,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f8a100e4-70d4-4bf3-bcff-73ce9f70f508","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"992d0fd0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f8a100e4-70d4-4bf3-bcff-73ce9f70f508","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240629,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyOX0.t5h_AghQQbiSm-soeWrCBt8op7ZHXQ19HEOZV7la6bQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"992d0fd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1577,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.669895,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"992d36e0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240629,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyOX0.t5h_AghQQbiSm-soeWrCBt8op7ZHXQ19HEOZV7la6bQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"992d36e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff8a100e4-70d4-4bf3-bcff-73ce9f70f508","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff8a100e4-70d4-4bf3-bcff-73ce9f70f508","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:06.532764151Z"}]},"request_id":"92dcf52d-712c-49e1-94e4-aad706bc38cd","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240629.0770192} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"992d0fd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:06.573362111Z"}]},"request_id":"f6895f18-9664-4ea2-bf9a-39fa54e9f47e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240629.0776062} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"992d36e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"992d0fd0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/f8a100e4-70d4-4bf3-bcff-73ce9f70f508? 200 13ms","method":"GET","requestID":"992d0fd0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/f8a100e4-70d4-4bf3-bcff-73ce9f70f508?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"992d36e0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd? 200 13ms","method":"GET","requestID":"992d36e0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae"},"level":"info","message":"Setting up experiment","requestID":"e60cee93567a3d562695f57c0315642d"} experiment-1 | {"0":{"announcedAvailability":[{"available":true}],"codeUrl":"http://localhost/cloud_instantiable_device","description":"A JS test device","devices":[],"instantiateUrl":"http://localhost/edge_instantiable_device","isPublic":true,"name":"JS Device 1","owner":[{"url":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}],"type":"edge instantiable","url":"http://localhost/devices/f8a100e4-70d4-4bf3-bcff-73ce9f70f508","viewer":[]},"level":"info","message":"uninstantiated devices","requestID":"e60cee93567a3d562695f57c0315642d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"e60cee93567a3d562695f57c0315642d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae"},"level":"info","message":"Successfully locked booking for experiment","requestID":"e60cee93567a3d562695f57c0315642d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"e60cee93567a3d562695f57c0315642d"} device-1 | {"level":"info","message":"postDevicesByDeviceId called","requestID":"9934d800-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1578,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:09Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1578,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.720001,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:09Z"} authorization-1 | {"action":"instantiate","level":"info","message":"opa_check","object":"device:http://localhost/devices/f8a100e4-70d4-4bf3-bcff-73ce9f70f508","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9934d800-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/f8a100e4-70d4-4bf3-bcff-73ce9f70f508","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240629,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyOX0.t5h_AghQQbiSm-soeWrCBt8op7ZHXQ19HEOZV7la6bQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"9934d800-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"ad1f78e5-3e05-46c0-a669-901450a2d829","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240629.167115} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d1a9020f-8d4f-4298-955a-1025b5ceca99","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240629.1672437} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"9934d800-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":10,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"registering changed-callback for device 'http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987' to 'http://localhost/callbacks/experiment'","requestID":"9934d800-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postDevicesByDeviceId succeeded","requestID":"9934d800-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"level":"info","message":"POST /token 201 18ms","method":"POST","requestID":"993d1560-4c2a-11f0-aa7d-af59e50dd4c1","responseTime":18,"status":201,"url":"/token"} device-1 | {"level":"info","message":"POST /devices/f8a100e4-70d4-4bf3-bcff-73ce9f70f508?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 77ms","method":"POST","requestID":"9934d800-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":77,"status":201,"url":"/devices/f8a100e4-70d4-4bf3-bcff-73ce9f70f508?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"e60cee93567a3d562695f57c0315642d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae"},"level":"info","message":"Attempting to update booking for experiment","requestID":"e60cee93567a3d562695f57c0315642d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae"},"level":"info","message":"Successfully updated booking for experiment","requestID":"e60cee93567a3d562695f57c0315642d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae"},"level":"info","message":"Successfully set up experiment","requestID":"e60cee93567a3d562695f57c0315642d"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"99472780-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"99474e90-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"994775a0-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae"},"level":"info","message":"Successfully running experiment","requestID":"e60cee93567a3d562695f57c0315642d"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Received request.","req_id":1579,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:09Z"} authorization-1 | {"client_addr":"127.0.0.1:41302","level":"info","msg":"Sent response.","req_id":1579,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.697613,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:09Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Received request.","req_id":1580,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:09Z"} authorization-1 | {"client_addr":"127.0.0.1:41300","level":"info","msg":"Sent response.","req_id":1580,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.566713,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"99472780-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240629,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyOX0.t5h_AghQQbiSm-soeWrCBt8op7ZHXQ19HEOZV7la6bQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"99472780-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"99474e90-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240629,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyOX0.t5h_AghQQbiSm-soeWrCBt8op7ZHXQ19HEOZV7la6bQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","method":"POST","requestID":"99474e90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:09.167080885Z"}]},"request_id":"875fa545-c91f-4145-9528-b28112bcf906","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240629.2525384} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"99472780-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:06.573362111Z"}]},"request_id":"d36dfb64-ef8c-4b63-8053-88552d49aa1c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240629.253377} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Received request.","req_id":1581,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:09Z"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"99474e90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3ad9deaa-1503-4b5d-9ea4-c1df97ea7050","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240629.2550771} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Sent response.","req_id":1581,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.634935,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"994775a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"99472780-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","method":"POST","requestID":"994775a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc53056a9-10e2-433b-8d8c-3fadda7db6ae#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc53056a9-10e2-433b-8d8c-3fadda7db6ae","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"47b9cbfa-1dce-4207-9e9e-33eeef6117e5","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240629.2564962} device-1 | {"level":"info","message":"GET /devices/a4615501-20a2-42ca-8362-a278caf9d987? 200 18ms","method":"GET","requestID":"99472780-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":18,"status":200,"url":"/devices/a4615501-20a2-42ca-8362-a278caf9d987?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ddd3dcd8-f26e-4102-baa4-9a0f7b9d4f95","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240629.2568996} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"99474e90-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd? 200 17ms","method":"GET","requestID":"99474e90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":17,"status":200,"url":"/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"e60cee93567a3d562695f57c0315642d","responseTime":11,"status":200,"url":"/relations/update"} device-1 | {"data":{"error":"MissingEntityError","message":"Could not find websocket connection for device a4615501-20a2-42ca-8362-a278caf9d987","method":"POST","stack":"MissingEntityError: Could not find websocket connection for device a4615501-20a2-42ca-8362-a278caf9d987\n at Object.postDevicesByDeviceIdSignaling (file:///usr/local/lib/node_modules/@crosslab/service-device/app/operations/devices/device/signaling/post.js:44:15)\n at async file:///usr/local/lib/node_modules/@crosslab/service-device/app/generated/routes.js:276:28","status":404,"url":"/devices/a4615501-20a2-42ca-8362-a278caf9d987/signaling"},"level":"error","message":"An error occurred during the handling of a request","requestID":"994775a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/a4615501-20a2-42ca-8362-a278caf9d987/signaling 404 20ms","method":"POST","requestID":"994775a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":20,"status":404,"url":"/devices/a4615501-20a2-42ca-8362-a278caf9d987/signaling"} experiment-1 | {"data":{"response":{"body":{"error":"MissingEntityError","message":"Could not find websocket connection for device a4615501-20a2-42ca-8362-a278caf9d987"},"status":404}},"level":"error","message":"Could not send status-update message","requestID":"e60cee93567a3d562695f57c0315642d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"994af810-4c2a-11f0-a085-a5c7b3a0c4e5"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae","user":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"e60cee93567a3d562695f57c0315642d"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Received request.","req_id":1582,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:09Z"} gateway-1 | {"time_local":"18/Jun/2025:09:57:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1108","request_time":"0.261","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e60cee93567a3d562695f57c0315642d"} experiment-1 | {"level":"info","message":"POST /experiments? 201 257ms","method":"POST","requestID":"e60cee93567a3d562695f57c0315642d","responseTime":257,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8d97d0b6-4f23-4afe-8241-64f245bd2b61","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240629.26909} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Sent response.","req_id":1582,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.371443,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"994af810-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"994af810-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"994af810-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd/signaling 200 13ms","method":"POST","requestID":"994af810-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd/signaling"} forwarding-1 | {"level":"info","message":"Participant \"a9c9aca9-52da-489f-ad3b-3d60488fb619\" in room \"http://localhost/rooms/4c28e906-04e2-4443-9b4c-9d6af8487efa\" did not answer hearbeat check, closing connection","requestID":"941b4d40-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"4e1e8ffe-04b4-4423-b49b-697bbcd2d132\" in room \"http://localhost/rooms/4c28e906-04e2-4443-9b4c-9d6af8487efa\" did not answer hearbeat check, closing connection","requestID":"941b9b60-4c2a-11f0-b702-8b8a85c3ad9a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0afaf46a98ce6ffad0e340535d7ebe90","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0afaf46a98ce6ffad0e340535d7ebe90","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:57:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/a4615501-20a2-42ca-8362-a278caf9d987/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.004","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0afaf46a98ce6ffad0e340535d7ebe90"} device-1 | {"level":"info","message":"OPTIONS /devices/a4615501-20a2-42ca-8362-a278caf9d987/websocket 200 1ms","method":"OPTIONS","requestID":"0afaf46a98ce6ffad0e340535d7ebe90","responseTime":1,"status":200,"url":"/devices/a4615501-20a2-42ca-8362-a278caf9d987/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IldhOEhiVjVlTWpTZEM3dnJUZnJ4WnhqQ1R1NFlQazlHR2lmbHlFUVJVODhnRWJ6aDFKS3BWS05RWml2UjBNUFh6UzAwZVdhWGFmUTl3QXpmRmJGazhnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYzMX0.3KmpmNnsUY5thiD19o2gmj1rZ4R4QTqpyZeqy5D0W0c","level":"info","message":"auth send jwt","requestID":"f0a5d465fca1219f3a9317b5b38e6b56"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f0a5d465fca1219f3a9317b5b38e6b56","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"f0a5d465fca1219f3a9317b5b38e6b56"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Received request.","req_id":1583,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:11Z"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Sent response.","req_id":1583,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.16918,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"f0a5d465fca1219f3a9317b5b38e6b56","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","object_type":"device","payload":{"admin":true,"edgeToken":"Wa8HbV5eMjSdC7vrTfrxZxjCTu4YPk9GGiflyEQRU88gEbzh1JKpVKNQZivR0MPXzS00eWaXafQ9wAzfFbFk8g","iat":1750240631,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IldhOEhiVjVlTWpTZEM3dnJUZnJ4WnhqQ1R1NFlQazlHR2lmbHlFUVJVODhnRWJ6aDFKS3BWS05RWml2UjBNUFh6UzAwZVdhWGFmUTl3QXpmRmJGazhnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYzMX0.3KmpmNnsUY5thiD19o2gmj1rZ4R4QTqpyZeqy5D0W0c"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"f0a5d465fca1219f3a9317b5b38e6b56","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"f0a5d465fca1219f3a9317b5b38e6b56"} device-1 | {"level":"info","message":"POST /devices/a4615501-20a2-42ca-8362-a278caf9d987/websocket 200 40ms","method":"POST","requestID":"f0a5d465fca1219f3a9317b5b38e6b56","responseTime":40,"status":200,"url":"/devices/a4615501-20a2-42ca-8362-a278caf9d987/websocket"} gateway-1 | {"time_local":"18/Jun/2025:09:57:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/a4615501-20a2-42ca-8362-a278caf9d987/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.047","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f0a5d465fca1219f3a9317b5b38e6b56"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"device 'http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"96adca055efb9d5eb1b505b331785124","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"96adca055efb9d5eb1b505b331785124","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","device":{"announcedAvailability":[],"codeUrl":"http://localhost/cloud_instantiable_device","connected":true,"description":"A JS test device","devices":[],"instantiateUrl":"http://localhost/edge_instantiable_device","isPublic":true,"name":"JS Device 1","services":[],"type":"device","url":"http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987"},"eventType":"device-changed"}},"level":"info","message":"received a callback","requestID":"96adca055efb9d5eb1b505b331785124"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"40b03081dd594d865e9cc05e246654ce","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"40b03081dd594d865e9cc05e246654ce","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"18/Jun/2025:09:57:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/a4615501-20a2-42ca-8362-a278caf9d987? HTTP/1.1","status": "200","body_bytes_sent":"26","request_time":"0.003","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"40b03081dd594d865e9cc05e246654ce"} device-1 | {"level":"info","message":"OPTIONS /devices/a4615501-20a2-42ca-8362-a278caf9d987? 200 1ms","method":"OPTIONS","requestID":"40b03081dd594d865e9cc05e246654ce","responseTime":1,"status":200,"url":"/devices/a4615501-20a2-42ca-8362-a278caf9d987?"} gateway-1 | {"time_local":"18/Jun/2025:09:57:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"96adca055efb9d5eb1b505b331785124"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 11ms","method":"POST","requestID":"96adca055efb9d5eb1b505b331785124","responseTime":11,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IldhOEhiVjVlTWpTZEM3dnJUZnJ4WnhqQ1R1NFlQazlHR2lmbHlFUVJVODhnRWJ6aDFKS3BWS05RWml2UjBNUFh6UzAwZVdhWGFmUTl3QXpmRmJGazhnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYzMX0.3KmpmNnsUY5thiD19o2gmj1rZ4R4QTqpyZeqy5D0W0c","level":"info","message":"auth send jwt","requestID":"6accc43d33656bce6684814217132f72"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6accc43d33656bce6684814217132f72","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"6accc43d33656bce6684814217132f72"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Received request.","req_id":1584,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:11Z"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Sent response.","req_id":1584,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.735694,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6accc43d33656bce6684814217132f72","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","object_type":"device","payload":{"admin":true,"edgeToken":"Wa8HbV5eMjSdC7vrTfrxZxjCTu4YPk9GGiflyEQRU88gEbzh1JKpVKNQZivR0MPXzS00eWaXafQ9wAzfFbFk8g","iat":1750240631,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IldhOEhiVjVlTWpTZEM3dnJUZnJ4WnhqQ1R1NFlQazlHR2lmbHlFUVJVODhnRWJ6aDFKS3BWS05RWml2UjBNUFh6UzAwZVdhWGFmUTl3QXpmRmJGazhnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYzMX0.3KmpmNnsUY5thiD19o2gmj1rZ4R4QTqpyZeqy5D0W0c"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"6accc43d33656bce6684814217132f72","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:09.167080885Z"}]},"request_id":"7c8ea3d1-246d-49fb-80aa-7da156b4e9f0","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240631.676873} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6accc43d33656bce6684814217132f72","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e5ca1740-f143-4046-bc54-d0388132513a","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240631.681529} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"6accc43d33656bce6684814217132f72","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:09.167080885Z"}]},"request_id":"24c9060b-6e43-4537-b51a-825040c5e779","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240631.6908267} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6accc43d33656bce6684814217132f72","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987' to 'http://localhost/callbacks/experiment'","requestID":"6accc43d33656bce6684814217132f72"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"6accc43d33656bce6684814217132f72"} gateway-1 | {"time_local":"18/Jun/2025:09:57:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/a4615501-20a2-42ca-8362-a278caf9d987? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.027","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6accc43d33656bce6684814217132f72"} device-1 | {"level":"info","message":"PATCH /devices/a4615501-20a2-42ca-8362-a278caf9d987? 200 24ms","method":"PATCH","requestID":"6accc43d33656bce6684814217132f72","responseTime":24,"status":200,"url":"/devices/a4615501-20a2-42ca-8362-a278caf9d987?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a226ecc01c83adf9462b12f23e36baf2","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a226ecc01c83adf9462b12f23e36baf2","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","device":{"announcedAvailability":[],"codeUrl":"http://localhost/cloud_instantiable_device","connected":true,"description":"A JS test device","devices":[],"instantiateUrl":"http://localhost/edge_instantiable_device","isPublic":true,"name":"JS Device 1","services":[{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},{"serviceDirection":"producer","serviceId":"file_producer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]},{"serviceDirection":"consumer","serviceId":"file_consumer","serviceType":"https://api.goldi-labs.de/serviceTypes/file","supportedConnectionTypes":["webrtc"]}],"type":"device","url":"http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987"},"eventType":"device-changed"}},"level":"info","message":"received a callback","requestID":"a226ecc01c83adf9462b12f23e36baf2"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 3ms","method":"POST","requestID":"a226ecc01c83adf9462b12f23e36baf2","responseTime":3,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:57:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.006","http_referrer":"","http_user_agent":"node-fetch","requestID":"a226ecc01c83adf9462b12f23e36baf2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYzMX0.NQBh8j6HygnBuo3A0GbHHfbo0jAbVzsA7Uto-tQKALQ","level":"info","message":"auth send jwt","requestID":"5fb65596afd309a7d3c1a81ef3e2ae08"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5fb65596afd309a7d3c1a81ef3e2ae08","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5fb65596afd309a7d3c1a81ef3e2ae08"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Received request.","req_id":1585,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:11Z"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Sent response.","req_id":1585,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.780274,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"5fb65596afd309a7d3c1a81ef3e2ae08","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240631,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYzMX0.NQBh8j6HygnBuo3A0GbHHfbo0jAbVzsA7Uto-tQKALQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"5fb65596afd309a7d3c1a81ef3e2ae08","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:09.167080885Z"}]},"request_id":"774aa847-6730-4bb7-8da3-88a972d6c365","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240631.707112} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"5fb65596afd309a7d3c1a81ef3e2ae08","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5fb65596afd309a7d3c1a81ef3e2ae08"} gateway-1 | {"time_local":"18/Jun/2025:09:57:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a4615501-20a2-42ca-8362-a278caf9d987? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5fb65596afd309a7d3c1a81ef3e2ae08"} device-1 | {"level":"info","message":"GET /devices/a4615501-20a2-42ca-8362-a278caf9d987? 200 9ms","method":"GET","requestID":"5fb65596afd309a7d3c1a81ef3e2ae08","responseTime":9,"status":200,"url":"/devices/a4615501-20a2-42ca-8362-a278caf9d987?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYzMX0.NQBh8j6HygnBuo3A0GbHHfbo0jAbVzsA7Uto-tQKALQ","level":"info","message":"auth send jwt","requestID":"df817aa38bab20bc10cf648faf334c47"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"df817aa38bab20bc10cf648faf334c47","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"df817aa38bab20bc10cf648faf334c47"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Received request.","req_id":1586,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:11Z"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Sent response.","req_id":1586,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.736065,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"df817aa38bab20bc10cf648faf334c47","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240631,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYzMX0.NQBh8j6HygnBuo3A0GbHHfbo0jAbVzsA7Uto-tQKALQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"df817aa38bab20bc10cf648faf334c47","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:06.573362111Z"}]},"request_id":"1166be9d-835b-40e8-b426-8e5db6869282","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240631.7212267} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"df817aa38bab20bc10cf648faf334c47","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"df817aa38bab20bc10cf648faf334c47"} gateway-1 | {"time_local":"18/Jun/2025:09:57:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd? HTTP/1.1","status": "200","body_bytes_sent":"998","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"df817aa38bab20bc10cf648faf334c47"} device-1 | {"level":"info","message":"GET /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd? 200 10ms","method":"GET","requestID":"df817aa38bab20bc10cf648faf334c47","responseTime":10,"status":200,"url":"/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd?"} forwarding-1 | {"level":"info","message":"Participant \"75942a5e-05a5-458a-a098-8d6b99205411\" in room \"http://localhost/rooms/bb4e6b53-6cb8-484b-9aa1-7764d4d24eef\" did not answer hearbeat check, closing connection","requestID":"95510e20-4c2a-11f0-b702-8b8a85c3ad9a"} forwarding-1 | {"level":"info","message":"Participant \"00345552-d3e6-442c-9e9a-4989ccd27fd9\" in room \"http://localhost/rooms/bb4e6b53-6cb8-484b-9aa1-7764d4d24eef\" did not answer hearbeat check, closing connection","requestID":"95513530-4c2a-11f0-b702-8b8a85c3ad9a"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"9c459a70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"9c45c180-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Received request.","req_id":1587,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Sent response.","req_id":1587,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.482814,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9c459a70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240629,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyOX0.t5h_AghQQbiSm-soeWrCBt8op7ZHXQ19HEOZV7la6bQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"9c459a70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Received request.","req_id":1588,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Sent response.","req_id":1588,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.174172,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9c45c180-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240629,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyOX0.t5h_AghQQbiSm-soeWrCBt8op7ZHXQ19HEOZV7la6bQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"9c45c180-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:09.167080885Z"}]},"request_id":"d5081f6d-0ca3-4ea5-b9f5-dd8a5c708eb2","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.2731473} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"9c459a70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:06.573362111Z"}]},"request_id":"59c6fd78-ec9d-4cd1-b95c-66d907a95965","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.273664} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"9c45c180-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"9c459a70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/a4615501-20a2-42ca-8362-a278caf9d987? 200 14ms","method":"GET","requestID":"9c459a70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":14,"status":200,"url":"/devices/a4615501-20a2-42ca-8362-a278caf9d987?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"9c45c180-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd? 200 15ms","method":"GET","requestID":"9c45c180-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":15,"status":200,"url":"/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"9c4880a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Received request.","req_id":1589,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8eddc641-8d44-40a6-ad27-7ab0b3e5021f","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.2883935} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Sent response.","req_id":1589,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.833628,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9c4880a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"9c4880a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"9c4880a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/a4615501-20a2-42ca-8362-a278caf9d987/signaling 200 12ms","method":"POST","requestID":"9c4880a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/a4615501-20a2-42ca-8362-a278caf9d987/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"9c4aca90-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Received request.","req_id":1590,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d404829d-af07-4bca-ab69-a4cfbf8ac543","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.3028839} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Sent response.","req_id":1590,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.59111,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9c4aca90-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"9c4aca90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"9c4aca90-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd/signaling 200 11ms","method":"POST","requestID":"9c4aca90-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":11,"status":200,"url":"/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"e60cee93567a3d562695f57c0315642d"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"9c4ced70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"9c4d1480-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Received request.","req_id":1591,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Sent response.","req_id":1591,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.90807,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Received request.","req_id":1592,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9c4ced70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240629,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyOX0.t5h_AghQQbiSm-soeWrCBt8op7ZHXQ19HEOZV7la6bQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"9c4ced70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Sent response.","req_id":1592,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.512554,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9c4d1480-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240629,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyOX0.t5h_AghQQbiSm-soeWrCBt8op7ZHXQ19HEOZV7la6bQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"9c4d1480-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:09.167080885Z"}]},"request_id":"a6f86d30-5bc1-438b-8fb5-1d777c690e43","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.3183064} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"9c4ced70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"timestamp":"2025-06-18T09:57:06.573362111Z"}]},"request_id":"cabd884c-73e0-43ae-b920-a07a43f82493","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.318966} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"9c4d1480-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"9c4ced70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/a4615501-20a2-42ca-8362-a278caf9d987? 200 13ms","method":"GET","requestID":"9c4ced70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/a4615501-20a2-42ca-8362-a278caf9d987?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"9c4d1480-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd? 200 13ms","method":"GET","requestID":"9c4d1480-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":13,"status":200,"url":"/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae"},"level":"info","message":"Building connection plan","requestID":"e60cee93567a3d562695f57c0315642d"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"5890bb8d-f6a0-40fa-bf55-281e92ae0419"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"88ee8816-d8b2-488c-8086-7ecc34f53875"}],"serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","uuid":"fac600ea-2144-41ff-827d-c6427f59a582"}]},"level":"info","message":"Built pairwise service configurations","requestID":"e60cee93567a3d562695f57c0315642d"} experiment-1 | {"data":{"connectionPlan":[{"configuration":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"credential":"goldi","urls":"turn:turn.goldi-labs.de:3478","username":"goldi"}]},"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"e60cee93567a3d562695f57c0315642d"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"9c4f5e70-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Received request.","req_id":1593,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Sent response.","req_id":1593,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.673213,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9c4f5e70-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240629,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYyOX0.t5h_AghQQbiSm-soeWrCBt8op7ZHXQ19HEOZV7la6bQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"9c4f5e70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]}},"raw_response":{},"request_id":"c018de4c-2806-4389-ab9b-03aee03d7e52","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.3390326} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d24ba660-709d-43cd-8c6d-96407a3fcdce","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.3392432} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"9c4f5e70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"9c4f5e70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"9c4f5e70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/24cf4940-d264-4de2-b183-316a2edc4601'","requestID":"9c4f5e70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/24cf4940-d264-4de2-b183-316a2edc4601'","requestID":"9c4f5e70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"9c4f5e70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 26ms","method":"POST","requestID":"9c4f5e70-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":26,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"9c4f5e70-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"device":"cd8bd968-d0d1-48e5-aca3-482e2a992dbd","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"cd8bd968-d0d1-48e5-aca3-482e2a992dbd","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"device":"a4615501-20a2-42ca-8362-a278caf9d987","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"a4615501-20a2-42ca-8362-a278caf9d987","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"e60cee93567a3d562695f57c0315642d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"9c5b9370-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"content":{"sdp":"v=0\r\no=- 8593791195605492972 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:x7gO\r\na=ice-pwd:4/lPlgRbMkN5/nT3cTeBXlUk\r\na=ice-options:trickle\r\na=fingerprint:sha-256 9D:22:C2:11:8F:49:03:32:38:E3:EC:E9:C4:43:03:B0:06:30:85:4D:13:59:35:9F:2B:FA:BD:E8:A1:D4:FB:C4\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"a4615501-20a2-42ca-8362-a278caf9d987","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Received request.","req_id":1594,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d1ab26cd-2053-428a-88fc-56e7463b4f67","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.4356196} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Sent response.","req_id":1594,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.564614,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9c5b9370-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"9c5b9370-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"9c5b9370-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/a4615501-20a2-42ca-8362-a278caf9d987/signaling 200 33ms","method":"POST","requestID":"9c5b9370-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/a4615501-20a2-42ca-8362-a278caf9d987/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 7329795015515905764 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:7F+z\r\na=ice-pwd:xpI9wYxRhvcCYDUJpcY1mo+l\r\na=ice-options:trickle\r\na=fingerprint:sha-256 31:4C:36:F2:55:99:3A:CF:4C:E0:03:BA:C6:00:20:FD:98:0C:6C:5B:A7:6C:61:29:47:9E:2D:5B:A1:20:1F:66\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"cd8bd968-d0d1-48e5-aca3-482e2a992dbd","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"9c6111b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"content":{"candidate":"candidate:3510534754 1 udp 2113937151 b48fa3f0-6030-4f3a-8bfb-7f1f983b1a9b.local 56467 typ host generation 0 ufrag 7F+z network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"cd8bd968-d0d1-48e5-aca3-482e2a992dbd","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:1108681585 1 udp 1677729535 141.24.211.56 56467 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag 7F+z network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"cd8bd968-d0d1-48e5-aca3-482e2a992dbd","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Received request.","req_id":1595,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:14Z"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd'"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fe5b3318-568b-4738-b700-1b5f598270f7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.4475832} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Sent response.","req_id":1595,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.926716,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9c6111b0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"9c6111b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"content":{"candidate":"candidate:2841989844 1 udp 2113937151 30578ec8-e7b7-4575-bb59-3416c87b5c65.local 52508 typ host generation 0 ufrag x7gO network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"a4615501-20a2-42ca-8362-a278caf9d987","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:978252743 1 udp 1677729535 141.24.211.56 52508 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag x7gO network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"a4615501-20a2-42ca-8362-a278caf9d987","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"a4615501-20a2-42ca-8362-a278caf9d987","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987'"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"9c6111b0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd/signaling 200 12ms","method":"POST","requestID":"9c6111b0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":12,"status":200,"url":"/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd/signaling"} device-1 | {"device":"cd8bd968-d0d1-48e5-aca3-482e2a992dbd","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/24cf4940-d264-4de2-b183-316a2edc4601' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"24cf4940-d264-4de2-b183-316a2edc4601","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"a4615501-20a2-42ca-8362-a278caf9d987","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"6afbfac824e241eaca0458169ea2de91","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"device":"cd8bd968-d0d1-48e5-aca3-482e2a992dbd","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6afbfac824e241eaca0458169ea2de91","responseTime":1,"status":200,"url":"/auth"} device-1 | {"device":"a4615501-20a2-42ca-8362-a278caf9d987","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/24cf4940-d264-4de2-b183-316a2edc4601"}}},"level":"info","message":"received a callback","requestID":"6afbfac824e241eaca0458169ea2de91"} device-1 | {"device":"cd8bd968-d0d1-48e5-aca3-482e2a992dbd","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} gateway-1 | {"time_local":"18/Jun/2025:09:57:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"6afbfac824e241eaca0458169ea2de91"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"6afbfac824e241eaca0458169ea2de91","responseTime":5,"status":200,"url":"/callbacks/experiment"} device-1 | {"device":"cd8bd968-d0d1-48e5-aca3-482e2a992dbd","deviceName":"JS Device 2","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"24cf4940-d264-4de2-b183-316a2edc4601","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"24cf4940-d264-4de2-b183-316a2edc4601","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/24cf4940-d264-4de2-b183-316a2edc4601' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"24cf4940-d264-4de2-b183-316a2edc4601","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"5562471efb744ae8135e835e3e505c7f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"5562471efb744ae8135e835e3e505c7f","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/24cf4940-d264-4de2-b183-316a2edc4601"}}},"level":"info","message":"received a callback","requestID":"5562471efb744ae8135e835e3e505c7f"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"9c713e50-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Received request.","req_id":1596,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F24cf4940-d264-4de2-b183-316a2edc4601","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"88f818a1-0304-425d-9438-3656ee076339","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.5775106} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Sent response.","req_id":1596,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":26.340028,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/24cf4940-d264-4de2-b183-316a2edc4601","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9c713e50-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/24cf4940-d264-4de2-b183-316a2edc4601","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"9c713e50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"9c713e50-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"GET /peerconnections/24cf4940-d264-4de2-b183-316a2edc4601 200 32ms","method":"GET","requestID":"9c713e50-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":32,"status":200,"url":"/peerconnections/24cf4940-d264-4de2-b183-316a2edc4601"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYzNH0.P4ZAJXrSJ6ZtDh2vLOZ8JMTUVD9WsLYa31PEzRwRW2M","level":"info","message":"auth send jwt","requestID":"c7db8ea93555a15ea461d39de8bed4e0"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c7db8ea93555a15ea461d39de8bed4e0","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 51ms","method":"POST","requestID":"5562471efb744ae8135e835e3e505c7f","responseTime":51,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:57:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch","requestID":"5562471efb744ae8135e835e3e505c7f"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae","requestID":"c7db8ea93555a15ea461d39de8bed4e0"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"9c789150-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Received request.","req_id":1597,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Received request.","req_id":1598,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Sent response.","req_id":1598,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.531386,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"c7db8ea93555a15ea461d39de8bed4e0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240634,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYzNH0.P4ZAJXrSJ6ZtDh2vLOZ8JMTUVD9WsLYa31PEzRwRW2M"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"c7db8ea93555a15ea461d39de8bed4e0","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"71c1b835-859d-4b01-830e-66aaa5579728","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.6264174} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Sent response.","req_id":1597,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.403563,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9c789150-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"9c789150-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"9c789150-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd/signaling 200 33ms","method":"POST","requestID":"9c789150-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":33,"status":200,"url":"/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd/signaling"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae","requestID":"c7db8ea93555a15ea461d39de8bed4e0"} gateway-1 | {"time_local":"18/Jun/2025:09:57:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae HTTP/1.1","status": "200","body_bytes_sent":"1181","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c7db8ea93555a15ea461d39de8bed4e0"} experiment-1 | {"level":"info","message":"GET /experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae 200 34ms","method":"GET","requestID":"c7db8ea93555a15ea461d39de8bed4e0","responseTime":34,"status":200,"url":"/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"9c7e36a0-4c2a-11f0-a085-a5c7b3a0c4e5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYzNH0.P4ZAJXrSJ6ZtDh2vLOZ8JMTUVD9WsLYa31PEzRwRW2M","level":"info","message":"auth send jwt","requestID":"6962683ad007fb6b54747f24d64db11a"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6962683ad007fb6b54747f24d64db11a","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Received request.","req_id":1599,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:14Z"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae","requestID":"6962683ad007fb6b54747f24d64db11a"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1b367670-f9b4-479f-94da-baa85be27fa7","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.6378753} authorization-1 | {"client_addr":"127.0.0.1:46000","level":"info","msg":"Sent response.","req_id":1599,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.344899,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Received request.","req_id":1600,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9c7e36a0-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"9c7e36a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Sent response.","req_id":1600,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.564859,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"6962683ad007fb6b54747f24d64db11a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"experiment:http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae","object_type":"experiment","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240634,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYzNH0.P4ZAJXrSJ6ZtDh2vLOZ8JMTUVD9WsLYa31PEzRwRW2M"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6962683ad007fb6b54747f24d64db11a","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"9c7e36a0-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/a4615501-20a2-42ca-8362-a278caf9d987/signaling 200 8ms","method":"POST","requestID":"9c7e36a0-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":200,"url":"/devices/a4615501-20a2-42ca-8362-a278caf9d987/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae"},"level":"info","message":"Attempting to finish experiment","requestID":"6962683ad007fb6b54747f24d64db11a"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"9c800b60-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Received request.","req_id":1601,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Sent response.","req_id":1601,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.650146,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/24cf4940-d264-4de2-b183-316a2edc4601","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9c800b60-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"peerconnection:http://localhost/peerconnections/24cf4940-d264-4de2-b183-316a2edc4601","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240634,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYzNH0.P4ZAJXrSJ6ZtDh2vLOZ8JMTUVD9WsLYa31PEzRwRW2M"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"9c800b60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":26,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/24cf4940-d264-4de2-b183-316a2edc4601","device":"a4615501-20a2-42ca-8362-a278caf9d987","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/24cf4940-d264-4de2-b183-316a2edc4601","device":"cd8bd968-d0d1-48e5-aca3-482e2a992dbd","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/24cf4940-d264-4de2-b183-316a2edc4601' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/24cf4940-d264-4de2-b183-316a2edc4601' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"24cf4940-d264-4de2-b183-316a2edc4601","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F24cf4940-d264-4de2-b183-316a2edc4601': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F24cf4940-d264-4de2-b183-316a2edc4601","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"b074c035-89eb-4b4e-b53e-2d465778d6be","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.6824725} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"17fd0222-eb3f-4217-93c4-ccd77bebbbd4","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.6827292} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"4e53daddc25bf283f938589248478b1c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"4e53daddc25bf283f938589248478b1c","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"9c800b60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":6,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"5f520d6129240390d52c58e5e064b267","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/24cf4940-d264-4de2-b183-316a2edc4601"}}},"level":"info","message":"received a callback","requestID":"4e53daddc25bf283f938589248478b1c"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5f520d6129240390d52c58e5e064b267","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd"},{"config":{"services":[{"interfaces":[],"remoteServiceDescription":{"interfaces":[{"availableSignals":{"gpio":["gpio1","gpio2"]},"interfaceType":"gpio"}],"serviceDirection":"prosumer","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical","supportedConnectionTypes":["webrtc"]},"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"https://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/24cf4940-d264-4de2-b183-316a2edc4601"}}},"level":"info","message":"received a callback","requestID":"5f520d6129240390d52c58e5e064b267"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"9c800b60-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /peerconnections/24cf4940-d264-4de2-b183-316a2edc4601 204 78ms","method":"DELETE","requestID":"9c800b60-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":78,"status":204,"url":"/peerconnections/24cf4940-d264-4de2-b183-316a2edc4601"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987'"} device-1 | {"level":"info","message":"deleteDevicesByDeviceId called","requestID":"9c8c4060-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Received request.","req_id":1602,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Sent response.","req_id":1602,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.717693,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9c8c4060-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","object_type":"device","payload":{"admin":true,"edgeToken":"2uG6XDzSd75iia3EeWKqcPV7SyJZhisDA4XsMPf59Wh1Mm-NukDH4Ed8KTH5Bi64jRyhydhVt0i-NsHHQUlfrA","iat":1750240634,"sub":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1","subject_alt":"http://localhost/users/0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzBhYWEyOTNlLWM2N2EtNGMyMi1iZjg0LTY5MWMxMWE4YWFmMSIsImVkZ2VUb2tlbiI6IjJ1RzZYRHpTZDc1aWlhM0VlV0txY1BWN1N5SlpoaXNEQTRYc01QZjU5V2gxTW0tTnVrREg0RWQ4S1RINUJpNjRqUnloeWRoVnQwaS1Oc0hIUVVsZnJBIiwiYWRtaW4iOnRydWUsImlhdCI6MTc1MDI0MDYzNH0.P4ZAJXrSJ6ZtDh2vLOZ8JMTUVD9WsLYa31PEzRwRW2M"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"9c8c4060-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"044fbb14-b710-4bdc-8153-69c399c030c8","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.7359731} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"38529e6a-a103-4d71-b29c-e4e5c4a5c36c","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.7361615} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"9c8c4060-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"deleteDevicesByDeviceId succeeded","requestID":"9c8c4060-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"DELETE /devices/a4615501-20a2-42ca-8362-a278caf9d987 204 44ms","method":"DELETE","requestID":"9c8c4060-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":44,"status":204,"url":"/devices/a4615501-20a2-42ca-8362-a278caf9d987"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae"},"level":"info","message":"Successfully finished experiment","requestID":"6962683ad007fb6b54747f24d64db11a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"9c951a00-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Received request.","req_id":1603,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd8bd968-d0d1-48e5-aca3-482e2a992dbd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"213d8996-2118-4ae0-acfb-a38c38518988","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.7884035} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Sent response.","req_id":1603,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.252925,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9c951a00-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"9c951a00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"9c951a00-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd/signaling 200 34ms","method":"POST","requestID":"9c951a00-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":34,"status":200,"url":"/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"9c9a9840-4c2a-11f0-a085-a5c7b3a0c4e5"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc53056a9-10e2-433b-8d8c-3fadda7db6ae': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc53056a9-10e2-433b-8d8c-3fadda7db6ae","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F0aaa293e-c67a-4c22-bf84-691c11a8aaf1"}]},"store_id":"01JY17A9N7QBER116NPEBA70ZZ","writes":null},"raw_response":{},"request_id":"e665204d-9d11-4da9-b0c0-e5b80352b547","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.8223357} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","store_id":"01JY17A9N7QBER116NPEBA70ZZ"},"raw_response":{"authorization_model":{"id":"01JY17A9QQNCDCTJE9NRRZT62Z","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"403eb34d-8066-4e5d-95cb-cf88d5bdc64e","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.8224742} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Received request.","req_id":1604,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 42ms","method":"POST","requestID":"6962683ad007fb6b54747f24d64db11a","responseTime":42,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:46824","raw_request":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","contextual_tuples":null,"store_id":"01JY17A9N7QBER116NPEBA70ZZ","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4615501-20a2-42ca-8362-a278caf9d987","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"efe3cb12-413d-4a07-a522-6bed6d939790","store_id":"01JY17A9N7QBER116NPEBA70ZZ","subsystem":"openfga","timestamp":1750240634.8250337} authorization-1 | {"client_addr":"127.0.0.1:34954","level":"info","msg":"Sent response.","req_id":1604,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.438767,"resp_status":200,"subsystem":"opa","time":"2025-06-18T09:57:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","openfga":{"authorization_model_id":"01JY17A9QQNCDCTJE9NRRZT62Z","store":"01JY17A9N7QBER116NPEBA70ZZ"},"requestID":"9c9a9840-4c2a-11f0-a085-a5c7b3a0c4e5","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"9c9a9840-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"error":"MissingEntityError","message":"The requested Device Overview does not exist in the database","method":"POST","stack":"MissingEntityError: The requested Device Overview does not exist in the database\n at DeviceOverviewRepository.findOneOrFail (file:///usr/local/lib/node_modules/@crosslab/service-common/lib/esm/database/abstractRepository.js:63:19)\n at async DeviceRepository.findOneOrFail (file:///usr/local/lib/node_modules/@crosslab/service-device/app/database/repositories/device.js:155:32)\n at async Object.postDevicesByDeviceIdSignaling (file:///usr/local/lib/node_modules/@crosslab/service-device/app/operations/devices/device/signaling/post.js:22:25)\n at async file:///usr/local/lib/node_modules/@crosslab/service-device/app/generated/routes.js:276:28","status":404,"url":"/devices/a4615501-20a2-42ca-8362-a278caf9d987/signaling"},"level":"error","message":"An error occurred during the handling of a request","requestID":"9c9a9840-4c2a-11f0-a085-a5c7b3a0c4e5"} device-1 | {"level":"info","message":"POST /devices/a4615501-20a2-42ca-8362-a278caf9d987/signaling 404 8ms","method":"POST","requestID":"9c9a9840-4c2a-11f0-a085-a5c7b3a0c4e5","responseTime":8,"status":404,"url":"/devices/a4615501-20a2-42ca-8362-a278caf9d987/signaling"} experiment-1 | {"data":{"response":{"body":{"error":"MissingEntityError","message":"The requested Device Overview does not exist in the database"},"status":404}},"level":"error","message":"Could not send status-update message","requestID":"6962683ad007fb6b54747f24d64db11a"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae","requestID":"6962683ad007fb6b54747f24d64db11a"} gateway-1 | {"time_local":"18/Jun/2025:09:57:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.294","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6962683ad007fb6b54747f24d64db11a"} experiment-1 | {"level":"info","message":"DELETE /experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae 204 291ms","method":"DELETE","requestID":"6962683ad007fb6b54747f24d64db11a","responseTime":291,"status":204,"url":"/experiments/c53056a9-10e2-433b-8d8c-3fadda7db6ae"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 243ms","method":"POST","requestID":"4e53daddc25bf283f938589248478b1c","responseTime":243,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:57:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.246","http_referrer":"","http_user_agent":"node-fetch","requestID":"4e53daddc25bf283f938589248478b1c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 243ms","method":"POST","requestID":"5f520d6129240390d52c58e5e064b267","responseTime":243,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:57:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.245","http_referrer":"","http_user_agent":"node-fetch","requestID":"5f520d6129240390d52c58e5e064b267"} gateway-1 | {"time_local":"18/Jun/2025:09:57:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3122","request_time":"6.032","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3106a19354f0af634c7bcb439998c851"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/cd8bd968-d0d1-48e5-aca3-482e2a992dbd' closed"} gateway-1 | {"time_local":"18/Jun/2025:09:57:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2882","request_time":"3.329","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"302e1d87291a72e9f8749068be29c166"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987' closed"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"062c6ea3b99f0d9e94d687ffb4a13991","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"062c6ea3b99f0d9e94d687ffb4a13991","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","device":{"announcedAvailability":[],"codeUrl":"http://localhost/cloud_instantiable_device","connected":false,"description":"A JS test device","devices":[],"instantiateUrl":"http://localhost/edge_instantiable_device","isPublic":true,"name":"JS Device 1","services":[],"type":"device","url":"http://localhost/devices/a4615501-20a2-42ca-8362-a278caf9d987"},"eventType":"device-changed"}},"level":"info","message":"received a callback","requestID":"062c6ea3b99f0d9e94d687ffb4a13991"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 410 1ms","method":"POST","requestID":"062c6ea3b99f0d9e94d687ffb4a13991","responseTime":1,"status":410,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"18/Jun/2025:09:57:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "410","body_bytes_sent":"5","request_time":"0.004","http_referrer":"","http_user_agent":"node-fetch","requestID":"062c6ea3b99f0d9e94d687ffb4a13991"} authentication-1 exited with code 143 federation-1 exited with code 143 forwarding-1 exited with code 143 device-1 exited with code 143 authorization-1 exited with code 0 experiment-1 exited with code 143 gateway-1 exited with code 0